什么“返回this.each()”在jQuery中做什么?

我正在看一个jQuery插件,它有一个单一的function。 通过构造函数参数设置适当的默认值后,函数定义了几个辅助函数,然后在最后一部分返回对this.each()的调用,如下所示:

return this.each(function() { //long method defined here }); 

我理解使用this.each()来修改匹配的DOM元素等等,但是return语句能完成什么? 某种经过修改的DOM元素数组,然后可以在其他调用中链接?

我已经在这个网站上看到了这个。但我无法确定这里的return是什么。 感谢您帮助澄清这一点。

它允许一个人在一堆元素上调用插件或事件,然后将相同的函数或事件应用于所有元素

所以如果你这样做:

 $('.selector').myPlugin(); 

如果,让我们说, .selector包含10个元素,所有10个元素都将获得myPlugin所做的任何myPlugin


返回.each语句的原因是因为.each()返回给出的任何内容,它允许您在一个jQuery元素上链接多个函数和插件。

例如:

 $('.selector').myPlugin().yourPlugin(); 

.each返回它被调用的元素,因此在这种情况下,可能是为了保持方法在该选择器上链接的能力。 这意味着如果插件’S方法被称为foo ,你应该能够做到

 $("mySelector").foo().show(); 

因为foo返回了.each的结果,它基本上是$("mySelector").

希望有道理。

这使得保持对象链成为可能,所以你可以像这样调用jquery方法:

 $("selector").css().mouseover().etc().blahblah(); 

它返回JQuery对象,该文档中所述的方法被调用。 因此,您可以在返回的值上调用另一个方法。

 // without method chaining myobject.a() myobject.b() myobject.c() // with method chaining myobject.a().b().c(); 

请参见方法链接和流畅的界面