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ノードに保存されていないだけだと信じ始めています。誰かがこれを確認できますか?