为了账号安全,请及时绑定邮箱和手机立即绑定

为什么用相同选择拿到的jquery对象的uid是一样的?

比如

var body1 = $("body")

var body2 = $("body")

他们的uid都是jQuery191019618577925292002这个缓存池中的3号位置,这是为什么

正在回答

2 回答

相同的DOM元素或DOM对象,jquery源码中$().data()代码,有elem = this[ 0 ],elem为DOM元素,两次为相同的对象,uid相同,缓存区相同,因此会被覆盖。而$.data()代码中,elem是jQuery的实例对象,不同的实例对象,分配了不同的缓存区,$.data()不覆盖。

0 回复 有任何疑惑可以回复我~

是DOM元素,通过分配一个唯一的关联id把DOM元素和该DOM元素的数据缓存对象关联起来,关联id被附加到以jQuery.expando的值命名的属性上,数据存储在全局缓存对象jQuery.cache中。在读取、设置、移除数据时,将通过关联id从全局缓存对象jQuery.cache中找到关联的数据缓存对象,然后在数据缓存对象上执行读取、设置、移除操作。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么用相同选择拿到的jquery对象的uid是一样的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信