想象一下我有下表:
<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)
,其中first和last只是一些任意的ID。
如果选定的单元格位于同一行,则工作完全正常。当它们位于两个不同的行中时会出现问题。它的作用是从"第一行"中选择所有单元格,就这样
如果我正确理解的话,这不是向前移动超过"</tr><tr>"
点。
我尝试过使用:
$("#"+first).nextUntil("#"+last).filter('tr')
但运气不好。有前进的方法吗?有什么解决办法吗?
是,next直到只遍历同级。
像这样的东西应该起作用:
$('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;
});