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');