2012-07-14 33 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