我希望使用jquery获取特定行子长度,但我得到特定行子项的所有html元素。
<table>
<tr>
<td id="title"></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<th></th>
<th></th>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
这是我的jquery代码。
console.log($("#title").parent().parent().find('tr').eq(3).html())
我想获得第三行的孩子长度。请事先帮助我。
答案 0 :(得分:4)
使用:eq()之类的
简化您的选择器$('tr:eq(2)').children().length
alert($('tr:eq(2)').children().length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td id="title"></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
&#13;
<强>更新强>
th
中未包含tr
个元素的HTML无效。此外,一些浏览器将通过自动包装它们来弥补这一点。因此,您需要调整HTML以正确定位&#39; 3rd&#39;行。
我删除了无效的
<th></th>
<th></th>
来自片段。但OP需要考虑到这一点来实现他的目标。
注意,作为替代方案,OP可以将所需的行和目标放在
中$('.target-row').children().length
alert($('.target-row').children().length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td id="title"></td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<th></th>
<th></th>
<tr class="target-row">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
&#13;
答案 1 :(得分:0)
eq(2)
将获得第三个tr
。
children().length
会得不到。第三个tr
内的tds。
console.log($("#title").closest('table').find('tr').eq(2).children().length)