以下两个导致相同结果的示例 - 为序列的每个项执行插件。那么在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
答案 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});
});
}
现在,实例可以有不同的颜色,具体取决于与该实例相关的其他条件