jquery對象轉(zhuǎn)換為dom對象時候的?
想知道“jquery對象轉(zhuǎn)換為dom對象時候的[0]屬性是哪里來的”,首先必須知道使用jquery查找后的對象到底包含哪些內(nèi)容;
我們以$('#test')為例,當(dāng)文檔中有id為test的元素時,使用$('#test')最終結(jié)果如下:
可以從控制臺中看出,像是一個數(shù)組,但是,當(dāng)進(jìn)行類型檢測時,結(jié)果如下:
其實結(jié)果是一個“類數(shù)組”。對于什么是類數(shù)組,可自行百度;
可以看出,查找結(jié)果的對象有個“0”屬性,保存著實際的dom元素對象;為何是這樣呢,其實可以從jquery源碼中得知:
當(dāng)運行$('#test')時,會走到如上圖代碼,首先使用原生“document.getElementById('test')”查找實際dom元素,如果找到了,就會將查找到的dom元素保存到“this[0]”中,而this則是一個實例化的對象;然后賦值this.context與this.selector,最終將this返回,也就是我們最終的查找結(jié)果;
所以,由上可知,在jquery源碼中,其實就是將查找到的dom元素保存到返回對象的[0]屬性中,也就回答了它具體是從哪兒來的了。