jQuery 缓存选定的元素?

亚历山德鲁·巴努

所以我使用这个代码来:

$('.something').on('click', function () {
  console.log($(this).data('id'));
}

出于某种原因,如果我使用检查器修改数据 ID,jQuery 仍然会看到一开始就存在的 ID。但是,我使用 JS 尝试了同样的事情,它确实看到了变化。这让我想知道 jQuery 是否以某种方式缓存了选择的元素并使用它们而不是实际的 DOM。

有人可以解释一下会发生什么以及jQuery如何在后台进行事件绑定吗?

稍后编辑:我想指定我在谈论我放在 HTML 中的“数据-”属性,而不是 jQuery 提供的“.data()”。不知道是不是一样的。

TJ克劳德

jQuery 缓存选定的元素?

不是。但是管理的数据data存储在由 jQuery 维护的对象缓存中,由 jQuery 添加到元素的唯一标识符作为键(因此它可以查找数据)。data只有初始化data-*属性,这是不是对他们的访问。它比这更多和更少。


如果您有兴趣,您可以将其视为元素实例上的“expando”属性,它将以“jquery”开头并附加一个很长的数字(目前;它是未记录的——有充分的理由 ——所以这可能改变):

var foo = $("#foo");
console.log(foo.data("info")); // hi there
console.log("Expando name: " + Object.getOwnPropertyNames(foo[0]).find(name => name.startsWith("jQuery")));
<div id="foo" data-info="hi there"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在选定元素上使用jQuery事件委托

来自分类Dev

获取选定元素jQuery中的文本

来自分类Dev

jQuery addClass基于选定选项的元素

来自分类Dev

jQuery在<select>元素中缓存数据缓慢

来自分类Dev

jQuery-事件绑定和缓存的元素

来自分类Dev

jQuery-事件绑定和缓存的元素

来自分类Dev

在缓存的jQuery元素上可见

来自分类Dev

如何通过jQuery发送选定的元素和文本输入

来自分类Dev

我如何只包装jQuery中的选定元素

来自分类Dev

使用jQuery获取选择中所有选定元素的索引

来自分类Dev

表单元素在选定选项上使用jQuery淡出

来自分类Dev

如何使用jQuery更改其他选定的元素样式

来自分类Dev

如何使用javascript更改jquery selectric元素的选定选项?

来自分类Dev

jQuery通过选择器与方法查找选定的元素

来自分类Dev

每个选定元素的jQuery一起运行

来自分类Dev

如何在jQuery中获取当前选定元素的标记名

来自分类Dev

获取jQuery中所有选定元素的列表

来自分类Dev

如何在jQuery选择的Multiselect中发布选定的元素

来自分类Dev

使用jQuery获取选择中所有选定元素的索引

来自分类Dev

HTML JQuery:将选定的值onclick传递给元素名称

来自分类Dev

如何在jQuery事件委托中获取选定的元素?

来自分类Dev

每个选定元素的jQuery一起运行

来自分类Dev

用jquery用div包裹多个选定元素

来自分类Dev

将 JQuery 选定元素存储为 JavaScript 对象属性?

来自分类Dev

jQuery 根据选定的值过滤具有类名的元素

来自分类Dev

jQuery根据选定的单选在元素上添加/删除css类

来自分类Dev

jQuery类选择器与缓存元素+查找

来自分类Dev

删除类后,jQuery失去对缓存元素的引用

来自分类Dev

使用缓存的选择器(jQuery)选择子元素

Related 相关文章

热门标签

归档