首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery数据与属性?

jQuery数据与属性?
EN

Stack Overflow用户
提问于 2011-09-01 02:26:34
回答 2查看 206.2K关注 0票数 532

使用data-someAttribute时,$.data$.attr的用法有何不同

我的理解是$.data存储在jQuery的$.cache中,而不是DOM中。因此,如果我想使用$.cache进行数据存储,我应该使用$.data。如果我想添加HTML5数据属性,我应该使用$.attr("data-attribute", "myCoolValue")

EN

回答 2

Stack Overflow用户

发布于 2015-04-28 07:02:32

两者之间的主要区别在于它的存储位置和访问方式。

$.fn.attr将信息直接存储在元素的属性中,这些属性在检查时是公开可见的,也可以从元素的原生API中获得。

$.fn.data将信息存储在ridiculously obscure place中。它位于一个名为data_user的封闭局部变量中,该变量是一个本地定义的函数数据的实例。不能从jQuery外部直接访问此变量。

使用attr()的数据集

如果值的形式为data-name也可以从inspection

  • cannot be对象上的元素上的$(element).data(name)element.dataset['name']

  • 访问<

  • >F222,则可以从element.getAttribute('data-name')

  • 中访问该值。

使用.data()的数据集

仅可从.data(name)

  • not访问的对象可从.attr()或其他任何地方访问在inspection
  • can be

上不能在元素上公开显示的

票数 117
EN

Stack Overflow用户

发布于 2019-03-28 17:25:41

您可以使用data-*属性嵌入自定义数据。HTML使我们能够在所有data-*元素上嵌入自定义数据属性。

jQuery .data()方法允许您以一种安全的方式将任何类型的数据获取/设置到DOM元素,从而避免循环引用和内存泄漏。

jQuery .attr()方法仅获取/设置匹配集中第一个元素的属性值。

示例:

代码语言:javascript
运行
复制
<span id="test" title="foo" data-kind="primary">foo</span>

$("#test").attr("title");
$("#test").attr("data-kind");
$("#test").data("kind");
$("#test").data("value", "bar");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7261619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档