jQuery data()与attr(data)的区别

9
我想了解使用$(element).data({'foo' : 'bar'})$(element).attr({ 'data-foo' : 'bar' })将数据保存到元素中的区别。在将大量数据保存到元素中时,这两种方法哪种最好?谢谢。
2个回答

9
$.data 用于与元素相关的信息存储

文档:

存储与指定元素相关的任意数据。返回设置的值。

另一方面,attr 用于操作元素的属性
从你的问题来看,你似乎是要存储数据,那么在这种情况下应该使用 $.data

data-* 属性 是 HTML5 的一个特性

性能

.data() 似乎更加性能友好,根据这个

我也认为它更加清晰,因为它不会在页面源代码中对所有人可见。


我正在使用JSON.stringify保存一个对象。可以使用data()方法获取使用.attr()保存的HTML5数据属性。但是我认为使用data()会更好。当使用data时,它存储在哪里?它不会显示为元素上的数据属性。 - Johan
@Johan:使用$.data时,属性不会被添加到元素中,因为它不是用于属性而是数据。至于存储,我相信jQuery会将其内部存储在某个对象中。 - Sarfraz
好的,谢谢您提供的信息。您知道IE7是否与data()有任何问题吗? - Johan
@Johan:我没有在IE7上使用过它,但你可以试一下。我认为既然jQuery能够在IE6及以下的浏览器中工作,那么应该也能正常工作。 - Sarfraz

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接