3

HTML5DOM要素の場合-

<div style="border:1px solid; width:100px; background:#FFF" class="btn" data-btnNo="1">Button</div>

以下の2つのJavaScript行の違いは何ですか?

$(this).attr("data-btnNo");

$(this).data("btnNo");

JSFiddleでの私のテストによると、最初のテストは機能しますが、2番目のテストは機能しません。そして、私は「なぜ?」を理解しようとしています。

jQueryはDOM要素ごとに個別のデータを維持しますか?.data()のJQueryドキュメントによると、 .data()がHTML5の値をdata-*独自のデータに取り込むことを理解しています。逆は本当ですか?そうした場合$(this).data("myData","jkl345");、HTML5属性data-myData="jkl345"が作成され$(this)ますか?

また、.data()を拡張して任意のDOM要素にデータを適用するように見えるjQuery.data()にも出くわしました。


後で追加: ' jQuery Data vs Attr?に答えがあるようです。'。そこに答えられていない唯一のものは$(this).data("newDataAttri","myVal")作成しますdata-newDataAttri="myVal"か?私はそれがDOMノードに保存されていないだけだと信じ始めています。誰かがこれを確認できますか?

4

1 に答える 1

0

コンソールを使用してデバッグを行うconsole.log($('.btn').data());と、オブジェクトとキーが表示されます。btnno' ' 小文字の 'n'を使用する必要があります

于 2013-03-01T17:27:38.990 に答える