1

如何从 td rowspan=4 获取目标

不确定:

$("#fromTd").parent("tr").next().eq($("#fromTd").attr("rowspan")-1)


<table>
   <tr>...</tr>
   <tr>...</tr>
   <tr><td id="fromTd" rowspan="4"></td></tr>
   <tr>...</tr>
   <tr>...</tr>
   <tr>...</tr>
   <tr>...</tr> -> target (can be aleatory position..)
</table>
4

2 回答 2

1

如果我错了,请纠正我,但听起来你想要的是<tr>在 X 行之后获得下一个,其中 X 是给定的行跨度<td>- 1。换句话说,你想要下一行<td>不会延伸到其中。

如果是这种情况,这应该可以解决问题:

var eq = $("#fromTd").attr("rowspan") - 1;
var row = $("#fromTd").parent("tr").nextAll(':eq(' + eq + ')');

这是一个现场演示:http: //jsfiddle.net/wLPA9/

于 2010-10-06T19:22:48.240 回答
1

如果您尝试执行该行正在尝试执行的操作(选择当前单元格末尾之后的行),则只rowspan需要nextAll()而不是next(),它只会返回直接的下一个元素兄弟。

var td= $('#fromTd');
var nextr= td.parent().nextAll().eq(td.attr('rowspan')-1);

或者,如果您有很多后续行并且您不想选择所有行来选择一个,您可以使用标准 DOMrowsrowIndex属性稍微更有效地执行此操作:

var nextr= td.closest('table')[0].rows[td[0].parentNode.rowIndex+td[0].rowSpan];
于 2010-10-06T19:18:12.167 回答