对于HTML5 DOM元素 -
<div style="border:1px solid; width:100px; background:#FFF" class="btn" data-btnNo="1">Button</div>
以下两条javascript线有什么区别?
$(this).attr("data-btnNo");
和
$(this).data("btnNo");
根据我tests on JSFiddle,我看到第一个有效,而第二个没有。我试图理解'为什么?'
jQuery是否为每个DOM元素维护单独的数据?根据{{3}},我了解到.data()会将HTML5 data-*
中的值输入到自己的数据中。反之亦然吗?如果我$(this).data("myData","jkl345");
,它会在data-myData="jkl345"
上创建HTML5属性$(this)
吗?
我还遇到了JQuery doc of .data()似乎扩展了.data()以将数据应用于任何DOM元素。
稍后添加:“jQuery.data()”似乎有答案。唯一没有回答的是$(this).data("newDataAttri","myVal")
创建data-newDataAttri="myVal"
吗?我开始相信它不会并且只将它存储在DOM节点中。谁能证实这一点?
答案 0 :(得分:0)
帮助调试使用控制台并执行console.log($('.btn').data());
您将看到对象和键。您需要使用'btnno
'小写'n'