使用jquery无法获得HTML行的子行长度

时间:2015-05-25 10:14:03

标签: jquery html

我希望使用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())

我想获得第三行的孩子长度。请事先帮助我。

2 个答案:

答案 0 :(得分:4)

使用:eq()之类的

简化您的选择器
$('tr:eq(2)').children().length

&#13;
&#13;
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;
&#13;
&#13;

<强>更新

th中未包含tr个元素的HTML无效。此外,一些浏览器将通过自动包装它们来弥补这一点。因此,您需要调整HTML以正确定位&#39; 3rd&#39;行。

我删除了无效的

<th></th>
<th></th>

来自片段。但OP需要考虑到这一点来实现他的目标。

注意,作为替代方案,OP可以将所需的行和目标放在

$('.target-row').children().length

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

eq(2)将获得第三个tr

children().length会得不到。第三个tr内的tds。

console.log($("#title").closest('table').find('tr').eq(2).children().length)