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

时间:2011-09-08 16:46:25

标签: jquery each

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

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

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

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

5 个答案:

答案 0 :(得分:10)

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

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

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

希望这是有道理的。

答案 1 :(得分:7)

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

所以,如果你这样做:

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

如果,让我们说,.selector包含10个元素,那么所有10个元素都会得到myPlugin所做的任何内容。


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

例如:

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

答案 2 :(得分:5)

答案 3 :(得分:4)

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

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

答案 4 :(得分:2)

它返回JQuery对象,该方法被调用,如docs中所述。所以你可以在返回的值上调用另一个方法。

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

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

请参阅method chainingfluent interface