对于 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");
根据我对 JSFiddle 的测试,我看到第一个有效,而第二个无效。我试图理解“为什么?”
jQuery 是否为每个 DOM 元素维护单独的数据?根据 .data() 的JQuery 文档,我了解到 .data() 将 HTML5 中的值data-*
转换为它自己的数据。反过来是真的吗?如果我这样做$(this).data("myData","jkl345");
,它会在 上创建一个 HTML5 属性data-myData="jkl345"
吗$(this)
?
我还遇到了jQuery.data(),它似乎扩展了 .data() 以将数据应用于任何 DOM 元素。
稍后添加: ' jQuery Data vs Attr?似乎有一个答案?'。唯一没有回答的是$(this).data("newDataAttri","myVal")
create data-newDataAttri="myVal"
? 我开始相信它不会而且只会将它存储在 DOM 节点中。谁能证实这一点?