2 bogexueqianduan bogexueqianduan 于 2016.03.23 16:30 提问

jQuery插件开发:return this.each()是什么意思?

我找到书面的解释是,通过返回当前对象,来维护链式调用。

但是我的问题是,直接return this不可以吗?
直接return this返回的不也是jQuery选择器获取的jQuery对象吗?
为什么后面要加上each()呢?

5个回答

showbo
showbo   Ds   Rxr 2016.03.23 18:10
已采纳

因为each返回的也是this对象,所以直接return this.each可以执行你的相关操作,还可以保持链式调用功能

caozhy
caozhy   Ds   Rxr 2016.03.23 16:40

因为this.each保证了遍历完成才执行下一个操作,否则迭代是延迟执行的,前面的插件并没有实际执行。

danielinbiti
danielinbiti   Ds   Rxr 2016.03.23 16:52

使用each的作用在于执行each可以带function参数,循环执行你要执行的操作。
如果单从链式角度和返回值出发,返回this和this.each返回的是一致的。

 return this.each(function() {
            $(this).append(' - ' + $(this).data('x'));
        });
                等价于
             var objs = this;
        for (var i=0; i<objs.length; i++) {
            var obj = objs[i];
            $(obj).append(' - ' + $(obj).data('x'));
        };
        return this;
caozhy
caozhy
一年多之前 回复
li_li_anna
li_li_anna   2016.03.23 16:50

我感觉 return this.each(),就相当于 this.each();return this; 那么写只是简写为了方便

Royal_lr
Royal_lr   Ds   Rxr 2016.03.23 16:39

你看这个each调用的是什么方法,,应该是遍历

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!