2014-12-05 27 views
2

我剛剛完成了我的項目的一個環節,它需要遍歷HTML表格的行並根據td的類執行文本操作。我用兩種不同的方法來處理這個問題,現在我想知道哪一種被認爲是最好的編碼實踐。另外,使用一種方法比另一種更有優勢嗎?jQuery每個增量計數器與選擇器

方法1:

$('#table tr').each(function(){ 
    var something = $(this).find('[class*=someClass]').html(); 
    //Do something with 'something' 
}); 

方法2:

var x = 0; 
$('#table tr').each(function(){ 
    var something = $(this).find('.someClass' + x).html(); 
    //Do something with 'something' 
    x++; 
}); 
+3

兩者都做兩件不同的事情...... – 2014-12-05 21:22:50

+0

順便說一句,'$()。each(function(index){})'。使用索引而不是變量。而且id是唯一的,所以它可能只是你的例子,但是'$('#table')。each'是無用的。 – 2014-12-05 21:24:57

+0

@ Karl-AndréGagnon哎呀。監督。我糾正了它。 – Michael 2014-12-05 21:27:36

回答

1

這可能更多意見爲主,但就個人而言,我會做到這一點:

$('#table tr').each(function(i){ 
    var something = $(this).find('.someClass' + i).html(); 
    //Do something with 'something' 
}); 

的索引每個元素都作爲參數傳遞。

編輯:

要展開什麼卡爾AndréGagnon說,這兩個」 .someClass'選擇將表現不同。在第一個例子中,他們將選擇具有'someClass'的所有元素,而不管任何數字後綴。第二個例子將只選擇具有指定數字後綴的類。

如果你正在做同樣的事情到每個」 .someClass'元素,無論在類的數量,你可能不需要一個‘每個’可言的,可能只是一個選擇,如啓動:

'#table tr [class*=someClass]'