2010-06-16 46 views
0

說我有這樣的文本框的選擇;使用jquery,只需調用一次函數即可

var arrayoftextboxes = $('.textbox1, .textbox2, .textbox3'); 

有沒有一種方法可以以比這更簡單的方式調用每個函數? 它只需要調用一次。

arrayoftextboxes.each(function(i){foo(arrayoftextboxes[i]);}); 

我試圖

arrayoftextboxes.load(function(){foo(this)}); 

arrayoftextboxes.bind(function(){foo(this)}); 

但功能似乎沒有被調用。

回答

3

你可以這樣做:

$('.textbox1, .textbox2, .textbox3').each(function() { foo(this); }); 

.each()調用創建一個封閉,裏面this指的是你目前的DOM元素,但它可能會更好寫你有什麼作爲jQuery plugin 。或者,如果你只是用thisfoo(而不是DOM元素作爲參數),你可以縮短它歸結爲:

$('.textbox1, .textbox2, .textbox3').each(foo); 

Here's a demonstration of that method

此外,還要確保你像document.ready運行此這樣的:

$(function() { 
    $('.textbox1, .textbox2, .textbox3').each(foo); 
}); 

否則DOM元素也未必會有發現,使得該選擇返回一個空數組(所以沒有什麼上運行)。

+0

酷,thx v很好的回覆。 – maxp 2010-06-16 10:31:22