2013-06-26 71 views
2

想象我有如下表:JQuery的nextUntil表遍歷選擇

<table> 
<tr> 
<td id="1">1</td> 
<td id="2">2</td> 
<td id="3">3</td> 
</tr> 

<tr> 
<td id="4">4</td> 
<td id="5">5</td> 
<td id="6">6</td> 
</tr> 
</table> 

我需要能夠選擇的範圍。每個表格單元都有唯一的ID。所以我用

$("#"+first).nextUntil("#"+last) 

,其中第一個和最後一個只是一些任意的ID。

如果選定的單元格位於同一行,它的工作原理完全正常。問題發生在兩個不同的行中時。它做了什麼 - 它從「第一」行中選擇所有單元格,就是這樣。

這是不是前進"</tr><tr>"點,如果我理解正確。

我已經嘗試使用:

$("#"+first).nextUntil("#"+last).filter('tr') 

,但沒有運氣。有沒有辦法前進?有沒有解決方法?

回答

1

是的,nextUntil只遍歷兄弟姐妹。

像這樣的東西應該工作:

$('table td').filter(function(){ 
    return parseInt(this.id) => first && parseInt(this.id) <= last; 
}); 

或者僅使用TDS的索引。這樣你就不需要ID:

$('table td').filter(function(index){ 
    return index => first && index <= last; 
}); 
+0

謝謝你安迪!奇蹟般有效 :) – Dmitri