如何使用jQuery从表中选择一系列tr

时间:2014-03-14 12:51:07

标签: jquery

我发现自己经常需要从桌子中选择一系列的tr。例如,通常情况下,第一个tr是表的标题,最后一个tr是表的页脚/分页号,我不想选择这两个中的任何一个。我知道我可以做到

$("#mytable>tbody>tr:gt(0)")

跳过第一个tr,但这将包括最后一个tr,在我的情况下是分页号行。

获取指数大于0且小于集合长度的tr的最有效方法是什么?换句话说,我想要除了集合中的第一个和最后一个之外的所有tr。

有什么想法吗?感谢。

6 个答案:

答案 0 :(得分:3)

 $('#mytable > tbody > tr').not(':first').not(':last')

答案 1 :(得分:3)

您可以使用切片:

$('#mytable > tbody > tr').slice(1, -1);

负指数走到尽头。

http://jsfiddle.net/VpC2V/

答案 2 :(得分:2)

:gt(大于)和:lt(低于)可与负数一起使用以向后计数

$('#mytable tr:gt(0):lt(-1)')

FIDDLE

作为旁注,表格中的页眉和页脚专门有theadtfoot元素

答案 3 :(得分:2)

您应该尝试使用thead,tbody和tfoot来分离您的表格内容。这样您就可以轻松地为表格内容选择tr:

<table>
    <thead>
        <tr><th>header_col1</th></tr>
        <tr><th>header_col2</th></tr>
    </thead>
    <tbody>
        <tr><td>val1</td></tr>
        <tr><td>val2</td></tr>
    </tbody>
    <tfoot>
        <tr><td colspan=2>footer</td></tr>
    </tfoot>
</table>

现在选择器变得非常明显:

$(".table tbody tr")

答案 4 :(得分:2)

您可以使用:

$('#mytable > tbody > tr:not(:first):not(:last)')

演示:http://jsfiddle.net/IrvinDominin/7yS5D/

答案 5 :(得分:1)

尝试使用此方法:

$('#mytable > tbody > tr').not(':first').not(':last')