2013-10-15 23 views
0

我在頁面中顯示以下內容:var rows顯示length = 1,但是它到達.each語句,它不會輸入它。我肯定錯過了什麼。當表中只有一行時,我只有這個問題。有什麼想法嗎?jquery .each錯過了第一行

$('.addnewrow').click(function() { 
     var rows = $('#webgrid tr:gt(0)'); 
     rows.each(function (index) { 
      // do something 
     }); 

     // now do something else based on the results of the .each 
    }); 

回答

2

:gt()需要指數,這是基於0,在這裏你所要求的一切比第一要素大。所以當只有一行時,在第一個之後沒有其他tr,所以語句$('#webgrid tr:gt(0)')返回空集合。

+0

啊,這是有道理的。我的表有一個總是可見的標題行和一個包含數據行的tbody。我怎樣才能跳過標題,以確保我只檢索tbody行的集合。我試過只選擇了tbody,但我遇到了相同的行爲 – Tim

+0

@Tim你的意思是你認爲你正在做的是正確的選擇?你能在小提琴中複製嗎?據我所知,GT的定義,它的工作方式...... – PSL

+0

@Tim做'$('#webgrid tbody tr')'應該工作,否則你可以把它放在小提琴中嗎? – PSL

1

#webgrid tr:gt(0),您選擇每一個tr其中有祖先#webgrid,是一個索引位置大於0(gt(0)),在這種情況下,使用:gt()僞選擇,如果你想通過所有的tr迭代是無用的。由於gt(0)的意思是「每個索引大於0的元素」,並且在位置0處只有一個元素,所以你完全忽略它。

希望這會有所幫助!