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