2012-07-14 31 views
1

我有函数foo以jquery包装节点为参数。有没有更优雅的方式来运行节点集上的这个功能?设置初始化函数的优雅方式

的方式我做到这一点:

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

函数foo()'的目的是什么? bcoz,答案取决于它,我想 – thecodeparadox 2012-07-14 17:03:12

回答

2

你可以把它一个插件:

$.fn.foo = function(){ 
    return this.each(function(){ 
    // do something to each element "this" 
    }); 
}; 

用法:

$('.for-foo').foo(); 

这也将使其与可链接其他jQuery函数。

1

你可以在选择传递给函数,就像这样:

foo($(".for-foo")); 

然后你foo功能应该是这样的:

function foo(selection) { 
    selection.each(function() { 
     // do stuff with each current node 
    }); 
} 

foo更加混乱,但至少要打电话要干净得多。

0

您的用途foo()不清楚,答案可能会有所不同。一个典型的例子可以是:

function foo($el) { 
    $el.css('color', function(i) { 
     return ['black', 'green', 'yellow', 'blue', 'red'][i]; 
    }); 
} 
foo($('.for-foo')); 

Working sample