【问题标题】:jquery data vs attr [duplicate]jquery数据与attr [重复]
【发布时间】:2013-06-13 08:23:38
【问题描述】:

我有这段代码(使用 jQuery 1.9.1):

var Clon = $('#mylabel');

然后我会更改数据属性,但在检查值时未建立:

Clon.data('hello','1');

但是这个方法返回值:

Clon.attr('data-hello','1');

可能是什么问题?

【问题讨论】:

  • 你说它不起作用是什么意思?我希望你以后不要检查 HTML 中的属性...
  • 你确定不是appendTo($("#mycont"));#
  • 我看不出反对这一点的目的 - 这显然是一个可能的重复,但问题仍然存在。
  • 问题可能是你有两次 id="mylabel" (在克隆之后)并且一个 Id 预计在 dom 中只有一次
  • 在我的回答中有一个工作代码。如果您想查看数据中的内容,可以使用 .data('mydataname') 来检查数据。 Jquery 不在 DOM 中维护它,而是在内存中。如果您正在寻找在 DOM 中可见的东西,请使用 attr() - 您可以在例如检查它铬 (f12)。

标签: jquery


【解决方案1】:

我认为您对 .data() 的作用感到困惑:

.data(name,value) 将信息存储在内部 jQuery 缓存中 - 您无法在 DOM 结构中看到它。

.attr(name,value) 更改该元素的 DOM 属性。因此,如果您检查它,您将能够在 HTML 代码中看到它。

【讨论】:

  • 确定?,那如果我做console.log($('#selector').data('name'),那我就不明白这个目的了
  • @carlituxman .data() 用于针对 DOM 中的元素存储您在 DOM 中不需要的信息。将 data() 视为 jQuery 为您管理的大量变量。你说“针对 div#x 为我存储/检索这个”,剩下的由 jQuery 完成。在这里查看api.jquery.com/jQuery.data 的详细信息和“为什么”观看这个来自 jQuery 的创建者 youtu.be/78cuwVtMe2Y 的精彩 youtube 视频
  • 谢谢!为了澄清......
  • 谢天谢地,有像你这样的开发者,而不是像其他只寻求投反对票的人......
猜你喜欢
  • 1970-01-01
  • 2011-10-18
  • 2012-01-08
  • 2012-10-26
  • 1970-01-01
  • 2013-07-03
  • 2016-12-08
  • 2011-08-18
  • 2014-08-22
相关资源
最近更新 更多