2016-06-14 13 views
-1

私がやっていた:jQueryのdata()関数が正しく動作していないようです。以前

マイHTML:

<span id="foo" data-foo-bar="42">The Answer</span> 

私の "jqueryの":

const fooElement = $('#foo'); 
const fooBar = fooElement.data('foo-bar'); // 42 
// or 
const fBar = fooElement.data()['foo-bar']; // 42 

しかし、私は(3.0)のjQueryをアップグレードした後、私はこの取得:

const fooElement = $('#foo'); 
const fooBar = fooElement.data('foo-bar'); // undefined 
// or 
const fBar = fooElement.data()['foo-bar']; // undefined 

どうすればこの問題を解決できますか?

変更内容何が変わった

+0

ここでチェック、https://plnkr.co/edit/0g9ITDAouWBL7XYRZzAO?p=previewは、オブジェクトが唯一fooBarにが含まれているとして、奇数であるjQueryの3.0 – Deep

+0

@Deepで正常に動作しているようだ:42 plnkr.co/edit/eTxAPEXjUNi0b7RxUov7 ?p =プレビュー。それはあなたのブラウザがやっているものでなければなりません。 – Neal

答えて

4

は何をしようとしたこともはやを動作することを意味しないbreaking change: .data() names containing dashes

が今そこにあるということでした!

は何ができることはこれです:

const fooElement = $('#foo'); 
const fooBar = fooElement.data('fooBar'); // 42 
// or 
const fBar = fooElement.data()['fooBar']; // 42 

jqueryのは、現在すべての「ケバブ・ケース」(jQueryの言葉ではない鉱山)データ属性をcamelCasesためです。

何(あなたがしたい場合)は、使用することができますが、実際のデータ属性です:

const fooElement = document.getElementById('foo'); 
const fooBar = fooElement.getAttribute('data-foo-bar'); // 42 

あなたはDOMは、あなたがthisを読むことができるDOMプロパティ対属性の詳細を知りたい場合。

関連する問題