jquery对象转换为dom对象时候的[0]属性是哪里来的?

网友解答: 想知道“jquery对象转换为dom对象时候的[0]属性是哪里来的”,首先必须知道使用jquery查找后的对象到底包含哪些内容;我们以$('#test')为例,当文档中有id

网友解答:

想知道“jquery对象转换为dom对象时候的[0]属性是哪里来的”,首先必须知道使用jquery查找后的对象到底包含哪些内容;

我们以$('#test')为例,当文档中有id为test的元素时,使用$('#test')最终结果如下:

可以从控制台中看出,像是一个数组,但是,当进行类型检测时,结果如下:

其实结果是一个“类数组”。对于什么是类数组,可自行百度;

可以看出,查找结果的对象有个“0”属性,保存着实际的dom元素对象;为何是这样呢,其实可以从jquery源码中得知:

当运行$('#test')时,会走到如上图代码,首先使用原生“document.getElementById('test')”查找实际dom元素,如果找到了,就会将查找到的dom元素保存到“this[0]”中,而this则是一个实例化的对象;然后赋值this.context与this.selector,最终将this返回,也就是我们最终的查找结果;

所以,由上可知,在jquery源码中,其实就是将查找到的dom元素保存到返回对象的[0]属性中,也就回答了它具体是从哪儿来的了。

标签: