3

对于 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 节点中。谁能证实这一点?

4

1 回答 1

0

为了帮助调试使用控制台,console.log($('.btn').data());您将看到对象和键。你需要使用' btnno'小写'n'

于 2013-03-01T17:27:38.990 回答