有很多关于这个的描述和jQuery上的$。他们中的大多数只澄清了这个和这个方向。事实上,它们有应用,不能一概而论。当jQuery调用成员函数时,这指向DOM对象。

$(这)是无可争辩的jQuery对象,但这是针对DOM对象,这是由于jQuery的特殊处理。 U3000

在创建DOM的jQuery对象时,jQuery不仅为DOM创建jQuery对象,还将DOM存储在所创建对象的数组中。

复制代码代码如下所示:

document.getelementbyid elem =(比赛{ 2 });

如果(元素元素。parentNode){

this.length = 1;

这{ 0 } =元;

}



this.context =文件;

this.selector =选择器;

返回此;



这{ 0 } =元素是一个声明,实现对象的数组,Javascript是一种有趣的语言。当使用这个访问时,您可以访问它引用的对象的成员函数,但这也是对象数组,它存储在DOM对象中。

看看$(),每个()循环

复制代码代码如下所示:

一:函数(回调,args){

返回jquery.each(这个回调,args);

}



看看每一个函数的调用,你应该知道,jquery.each(这个回调,args),调用对象数组和对象数组存储DOM对象,所以这个回调函数自然是DOM对象。

请看$()

复制代码代码如下所示:

隐藏:函数(){

返回showhide(本);

},

功能showhide(元素、节目){ var属性,显示,

值= },

索引= 0,

长度= elements.length;

用于(;;索引<长度;索引+){

元素=元素{指数};

如果(!元素。风格){

继续;

}

{ } = jQuery的指标值。_data(元素,olddisplay );

如果(显示){

重置此元素的内联显示,以了解是否为

被级联规则隐藏或

如果(价值指数elem.style.display = = = {!

elem.style.display = ;

}

设置已重写的元素:显示:无

样式表中的任何 /默认浏览器风格

这样的元素

如果(elem.style.display =隐藏(元素)){

{ } = jQuery的指标值。_data(元素,olddisplay

}

{人}

显示= curCSS(元素,显示);

如果(值{索引!显示!=无){

jQuery。_data(元素,olddisplay

}

}

}

在第二个循环中设置大部分元素的显示

避免持续回流

对于(索引= 0;索引<长度;索引+){

元素=元素{指数};

如果(!元素。风格){

继续;

}

如果(显示elem.style.display | |!= = =无| | elem.style.display = = ={)

elem.style.display =显示值{指数} | | :没有;

}

}

返回的元素;

}



从上面的代码中,我们可以看到隐藏的行数showhide实际调用的第一个参数,而不是DOM对象,但是jQuery对象数组,所以showhide函数得到每个DOM对象回收对象数组。

最后,看一下$(p)。Bind()——事件

复制代码代码如下所示:

函数(类型,数据,FN){

返回this.on(类型、空数据,FN);

},



复制代码代码如下所示:

关于:函数(类型,选择器,数据,Fn,内部*)

省略了代码的这一部分。

返回this.each(函数(){()

JQuery.event.add(这类型、FN、数据选择器);

});

},



bind函数调用的函数,并在函数实现jquery.event.add由各自的功能。所以jquery.event.add(这也是DOM对象。所以这个事件是DOM对象。



以上是个人对这一点的理解,以及在jQuery中的这一点。如果有任何错误,请与我联系或留言给我。