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

使用jQuery,如何删除除第一个表之外的所有行? 这是我第一次尝试使用索引select器。 如果我正确地理解了这些例子,下面的内容应该可以工

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

我将其理解为“在jQuery对象中包装某个表,然后删除所有'tr'元素(行),这些行的元素索引大于零”。 实际上,它执行时不会产生错误,但不会从表中删除任何行。

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

这应该工作:

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

考虑到这个意图,我认为这更可读:

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

通过限制search深度,使用子项还可以处理第一行包含表格的情况。

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

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

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

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

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

另一种方法是使用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元素。 当您只想刷新表格的内容时,它会很有用。

您的select器不需要在您的删除。

它应该看起来像这样:

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

这意味着selecttableID为ID的表中除第一个以外的每一行,并将其从DOM中删除。

考虑一个ID为tbl的表:jQuery代码将是:

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

我记得碰到那个“切片”比其他所有的方法都快,所以把它放在这里。

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

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

– 这是非常晚的答复。

我发现删除任何行(和所有其他行迭代)最简单的方法是这样的

$( '#ROWID', '#TABLEID')删除()。

其余的很容易。


 $(“#p-items”)。find('tr.row-items').remove();

包裹在一个function:

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

然后调用它:

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