2010-10-19 145 views
4

我想重複jQuery內部函數的一些功能。我嘗試了一個for循環,但它似乎不喜歡語法。 比如我有可變for循環裏面jquery函數

var number = 2; 

現在我有

$('tr').html('<td id="'+number+'"></td>'); 

我想要做的是循環從0到號碼(0,1,2),以便在最後,我結束了有3。 謝謝

回答

7

可能一個更好的辦法,但這應該工作。

var loops = [1,2,3]; 

$.each(loops, function(index, val) { 
    $('tr').html('<td id="myCell' + index + '"></td>'); 
}); 

這也應該工作(定期JS):

var i; 
for(i=0; i<3; i++) { 
    $('tr').html('<td id="myCell' + i + '"></td>'); 
} 

注意我怎麼前綴ID字 '了myCell',確保XHTML合規性。 (感謝@Peter Ajtai指出了這一點)。

編輯

我只注意到另外一個問題 - 你正在使用的的.html功能添加的細胞。但.html將替換匹配元素的整個html。所以你只會結束最後一個單元格。 :)

你可能尋找.append功能:

$('tr').append('<td id="myCell' + i + '"></td>'); 

EDIT 2 - 前了myCell移動的雙引號,而不是之後。

+1

for循環會起作用,但您應該注意您聲明'i'的位置。此外,這些ID無效。他們不能以數字開頭。 – 2010-10-19 03:53:33

+0

@Peter Ajtai - 好點(答案更新)。沒有注意他分配的ID,只是for循環的性質。 – RPM1984 2010-10-19 03:56:56

+0

這個解決方案的問題(我之前嘗試過,但根據您的建議再次測試)是最終在內部只有一個​​。這是因爲在循環內部,最後一次復飛只需要一個​​​​。 – 2010-10-19 04:39:59

2

繼承人使用匿名函數的選項。

$('TR').html(
    function(){ 
     var content=''; 
     for (var i=0; i<=2; i++ ){ 
      content=content+'<td id="id_'+i+'"></td>'; 
     } 
     return content; 
    } 
)