使用data-someAttribute
时,$.data
和$.attr
的用法有何不同
我的理解是$.data
存储在jQuery的$.cache
中,而不是DOM中。因此,如果我想使用$.cache
进行数据存储,我应该使用$.data
。如果我想添加HTML5数据属性,我应该使用$.attr("data-attribute", "myCoolValue")
。
发布于 2015-04-28 07:02:32
两者之间的主要区别在于它的存储位置和访问方式。
$.fn.attr
将信息直接存储在元素的属性中,这些属性在检查时是公开可见的,也可以从元素的原生API中获得。
$.fn.data
将信息存储在ridiculously obscure place中。它位于一个名为data_user
的封闭局部变量中,该变量是一个本地定义的函数数据的实例。不能从jQuery外部直接访问此变量。
使用attr()
的数据集
如果值的形式为data-name
也可以从inspection
$(element).data(name)
和element.dataset['name']
和
element.getAttribute('data-name')
和
使用.data()
的数据集
仅可从.data(name)
.attr()
或其他任何地方访问在inspection上不能在元素上公开显示的
发布于 2019-03-28 17:25:41
您可以使用data-*
属性嵌入自定义数据。HTML使我们能够在所有data-*
元素上嵌入自定义数据属性。
jQuery .data()
方法允许您以一种安全的方式将任何类型的数据获取/设置到DOM元素,从而避免循环引用和内存泄漏。
jQuery .attr()
方法仅获取/设置匹配集中第一个元素的属性值。
示例:
<span id="test" title="foo" data-kind="primary">foo</span>
$("#test").attr("title");
$("#test").attr("data-kind");
$("#test").data("kind");
$("#test").data("value", "bar");
https://stackoverflow.com/questions/7261619
复制相似问题