想知道「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]属性中,也就回答了它具体是从哪儿来的了。


推荐阅读:
相关文章