gpt4 book ai didi

javascript - jQuery 2.x 如何唯一标识一个元素(在 .data() 中)

转载 作者:行者123 更新时间:2023-11-28 01:40:34 25 4
gpt4 key购买 nike

在 jQuery 1.x 中,元素将在需要时接收唯一标识符(缓存键),存储在节点的 ele[jQuery.expando] 属性中, set by this line of codeMootools uses similar logic .

所以在 jQuery 1.x

var test = document.createElement("span");
console.log(test[jQuery.expando]);//undefined
$(test).data("test", {stuff:2});
console.log(test[jQuery.expando]);//some uid

我很好奇,因为我正在实现类似的逻辑,jQuery 如何识别 2.x 中的节点。引用 github 存储库中的行号会很棒!

最佳答案

jQuery 2 仍然使用此方法,该属性更难检测,因为它使用隐藏的随机数作为属性名称的一部分,而不仅仅是 jQuery.expando

第 42 和 43 行向元素添加了唯一的数据属性,Data.js 文件实际上是一个(大部分)独立的类定义,jQuery 使用它来处理数据存储功能。我承认代码库中的代码相当复杂,但是并不建议使用它作为学习 jQuery 如何工作的方式,请使用 code.jquery.com/jquery-2.0.3.js 上的注释源。相反,这样做可以让理解一切如何相互作用变得更加容易。

参见https://github.com/jquery/jquery/blob/6318ae6ab90d4b450dfadf32ab95fe52ed6331cb/src/data/Data.js#L32-51

关于javascript - jQuery 2.x 如何唯一标识一个元素(在 .data() 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20979302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com