我有函数 foo 将 jquery 包装的节点作为参数。有没有更优雅的方式在节点集上运行这个函数?
我这样做的方式:
$('.for-foo').each(function () {
foo($(this));
});
我有函数 foo 将 jquery 包装的节点作为参数。有没有更优雅的方式在节点集上运行这个函数?
我这样做的方式:
$('.for-foo').each(function () {
foo($(this));
});
你可以把它做成一个插件:
$.fn.foo = function(){
return this.each(function(){
// do something to each element "this"
});
};
用法:
$('.for-foo').foo();
这也将使它可以与其他 jQuery 函数链接。
您可以将选择传递给函数,如下所示:
foo($(".for-foo"));
您的foo
函数将如下所示:
function foo(selection) {
selection.each(function() {
// do stuff with each current node
});
}
foo
更混乱,但至少打电话更干净。
你foo()
的目的不明确,答案可能会有所不同。一个典型的例子可以是:
function foo($el) {
$el.css('color', function(i) {
return ['black', 'green', 'yellow', 'blue', 'red'][i];
});
}
foo( $('.for-foo') );