优雅的方式来设置初始化功能

时间:2012-07-14 16:57:09

标签: javascript jquery each

我有函数foo把jquery包装的节点作为参数。是否有更优雅的方式在节点集上运行此功能?

我的方式:

$('.for-foo').each(function () {
    foo($(this));
});

3 个答案:

答案 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