1)设置用户数据(请参阅Live demo):
document.getElementById('myelement1').setAttribute('data-size', 20);
在使用浏览器的检查器分析元素时,我可以看到这一点:
<div id="myelement1" data-size="20">Blah</div>
2)使用jQuery设置用户数据时:
$('#myelement2').data('size', 20);
在使用浏览器的检查器分析元素时,我可以看到这一点:
<div id="myelement2">Blah</div>
为什么DOM中的元素存在于1)但不存在于2)?
jQuery .data('size', 20)
如何存储数据,以及它在DOM中的位置?
(我在JS中不够先进,无法在代码中找到确切的位置)
答案 0 :(得分:2)
jQuery没有将物理属性附加到元素。它保留了一个内部对象(称为cache
),它保存数据,并引用它对应的元素 - 它不存储在DOM或属性中。
答案 1 :(得分:1)
元素的数据存储在内部,即存储在jQuery代码的本地集合中。
来自data
method的文档:
&#34;第一次在data属性中提取数据属性 被访问,然后不再被访问或变异(所有数据 然后将值存储在jQuery内部。&#34;
请注意,尽管data
方法并未更改数据属性,但设置数据属性会将其放入DOM中,并使用data
方法使其可用:
$('#myelement2').attr('data-size', 20);
console.log($('#myelement2').data('size')); // shows 20