我想知道,jquery如何在不添加任何HTML数据属性的情况下将任意数据与任何DOM元素相关联?
$('#div_id').data('suffix',(count++)) ;
我没有看到任何与firebug HTML快照中的HTML元素关联的数据属性。
机制是什么?
虽然HTML5中不再需要这种数据存储方法,但我还不清楚jquery数据存储的实际机制。
答案 0 :(得分:5)
它向元素添加一个属性,该属性包含一个数字值,表示jQuery.cache
对象中的索引,如下所示:
$('#footer').data('suffix',"suffix");
jQuery.cache[ $('#footer')[0][jQuery.expando] ].suffix;
//"suffix"
我使用"#footer"
,因为我在此页面上运行了代码。请注意,jQuery.cache[index]
的对象结构在由jQuery绑定了它们的事件的元素上会有所不同。
你永远不应该在代码中触摸它,所以它并不重要。
答案 1 :(得分:1)
JQuery为DOM元素添加了一个属性,它是用于在内部哈希中查找内容的键。
如果您在使用firebug中的DOM元素之后检查它,那么您将看到jQueryxxxxxxxx属性