在jQuery插件中使用this.each()的原因是什么?

时间:2015-03-04 18:11:01

标签: jquery jquery-plugins

以下两个导致相同结果的示例 - 为序列的每个项执行插件。那么在jQuery插件中使用this.each的原因是什么?

没有this.each

$.fn.green = function () {
   this.css({color: "green"});
   return this;
}

使用this.each

$.fn.green = function () {
    return this.each(function(index, elem) {
        $(elem).css({color: "green"});
    });
}

文档:http://learn.jquery.com/plugins/basic-plugin-creation/#using-the-each-method

1 个答案:

答案 0 :(得分:1)

重点是隔离选择器集合中的元素实例。

让你的例子更进一步,让我们考虑颜色取决于每个元素的父元素上的某个类。

$.fn.green = function () {
    return this.each(function(index, elem) {
        var $el =$(this), $parent = $el.parent();
        var color = $parent.is('.someClass') ? 'green' : 'red';
        $el.css({color: color});
    });
}

现在,实例可以有不同的颜色,具体取决于与该实例相关的其他条件