為什么用相同選擇拿到的jquery對(duì)象的uid是一樣的?
比如
var body1 = $("body")
var body2 = $("body")
他們的uid都是jQuery191019618577925292002這個(gè)緩存池中的3號(hào)位置,這是為什么
比如
var body1 = $("body")
var body2 = $("body")
他們的uid都是jQuery191019618577925292002這個(gè)緩存池中的3號(hào)位置,這是為什么
2017-01-16
舉報(bào)
2018-10-11
相同的DOM元素或DOM對(duì)象,jquery源碼中$().data()代碼,有elem = this[ 0 ],elem為DOM元素,兩次為相同的對(duì)象,uid相同,緩存區(qū)相同,因此會(huì)被覆蓋。而$.data()代碼中,elem是jQuery的實(shí)例對(duì)象,不同的實(shí)例對(duì)象,分配了不同的緩存區(qū),$.data()不覆蓋。
2017-01-22
是DOM元素,通過分配一個(gè)唯一的關(guān)聯(lián)id把DOM元素和該DOM元素的數(shù)據(jù)緩存對(duì)象關(guān)聯(lián)起來,關(guān)聯(lián)id被附加到以jQuery.expando的值命名的屬性上,數(shù)據(jù)存儲(chǔ)在全局緩存對(duì)象jQuery.cache中。在讀取、設(shè)置、移除數(shù)據(jù)時(shí),將通過關(guān)聯(lián)id從全局緩存對(duì)象jQuery.cache中找到關(guān)聯(lián)的數(shù)據(jù)緩存對(duì)象,然后在數(shù)據(jù)緩存對(duì)象上執(zhí)行讀取、設(shè)置、移除操作。