jQuery删除除第一个之外的所有表行

时间:2008-12-15 23:03:45

标签: jquery jquery-selectors

使用jQuery,如何删除表中除第一行以外的所有行?这是我第一次尝试使用索引选择器。如果我正确理解了这些示例,则以下内容应该有效:

$(some table selector).remove("tr:gt(0)");

我将其读作“将一些表包装在jQuery对象中,然后删除所有'tr'元素(行),其中这些行的元素索引大于零”。实际上,它会在不生成错误的情况下执行,但不会从表中删除任何行。

我错过了什么,我该如何解决这个问题?当然,我可以使用直接的javascript,但我对jQuery有很多乐趣,我想用jQuery解决这个问题。

14 个答案:

答案 0 :(得分:486)

这应该有效:

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").remove();
});

答案 1 :(得分:108)

我认为这意味着更具可读性:

$('someTableSelector').children( 'tr:not(:first)' ).remove();

使用子节点还可以通过限制搜索深度来处理第一行包含表格的情况。

如果你有一个TBODY元素,你可以这样做:

$("someTableSelector > tbody:last").children().remove();

如果你有THEAD或TFOOT元素,你需要做一些不同的事情。

答案 2 :(得分:37)

另一种实现此目的的方法是使用jQuery的empty()函数和表中的thead和tbody元素。

表格示例:

<table id="tableId">
<thead>
    <tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
    <tr><td>some</td><td>content</td></tr>
    <tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>

jQuery命令:

$("#tableId > tbody").empty();

这将删除表格的tbody元素中包含的每一行,并将thead元素保留在标题所在的位置。当您只想刷新表的内容时,它会很有用。

答案 3 :(得分:36)

如果是我,我可能会把它归结为一个选择器:

$('someTableSelector tr:not(:first)').remove();

答案 4 :(得分:29)

您的选择器不需要在您的移除中。

它应该类似于:

$("#tableID tr:gt(0)").remove();

这意味着选择除表格ID为tableID的第一行以外的每一行,并从DOM中删除它们。

答案 5 :(得分:6)

考虑一个id为tbl的表:jQuery代码为:

$('#tbl tr:not(:first)').remove();

答案 6 :(得分:6)

$('#table tr').slice(1).remove();

我记得遇到过'切片'比其他所有方法都快,所以只需把它放在这里。

答案 7 :(得分:1)

要删除除第一行(标题除外)之外的所有行,请使用以下代码:

$("#dataTable tr:gt(1)").remove();

答案 8 :(得分:0)

- 抱歉这是很迟的回复。

我发现删除任何行(以及通过迭代的所有其他行)的最简单方法是

$( '#ROWID', '#TABLEID')除去();

其余的很容易。

答案 9 :(得分:0)


$("#p-items").find( 'tr.row-items' ).remove();

答案 10 :(得分:0)

包裹在一个函数中:

function remove_rows(tablename) { 
    $(tablename).find("tr:gt(0)").remove();        
}

然后调用它:

remove_rows('#table1');
remove_rows('#table2');

答案 11 :(得分:0)

这完美无缺

$("#myTable tbody").children( 'tr:not(:first)' ).html("");

答案 12 :(得分:0)

这在我的案例中以下列方式工作并且正常工作

$("#compositeTable").find("tr:gt(1)").remove();

答案 13 :(得分:0)

最简单的方法:

$("#mytable").find($("tr")).slice(1).remove()

-首先参考表格
-获取元素列表并对其进行切片,然后删除列表中选定的元素