题
使用jQuery,我怎么删除除第一个表中的所有行?这是我在使用索引选择的第一次尝试。如果我正确理解的示例,以下应该工作:
$(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();
使用儿童也考虑其中第一行包含一个表,通过限制搜索的深度的情况下的服务。
如果你有一个TBODY元件,则可以做到这一点:
$("someTableSelector > tbody:last").children().remove();
如果您有THEAD或TFOOT元素,你需要做不同的事情。
另一种方式来完成,这是使用jQuery的空()函数与在表格中的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元件。当你想只刷新表的内容,可以是有用的。
如果是我的话,我可能熬它归结为一个单一的选择:
$('someTableSelector tr:not(:first)').remove();
您选择并不需要成为你删除里面。
这应该是这个样子:
$("#tableID tr:gt(0)").remove();
这意味着选择的每一行除与TABLEID的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 remove_rows(tablename) {
$(tablename).find("tr:gt(0)").remove();
}
然后调用它:
remove_rows('#table1');
remove_rows('#table2');
此工作完全
$("#myTable tbody").children( 'tr:not(:first)' ).html("");
这工作通过以下方式在我的情况和工作的罚款。
$("#compositeTable").find("tr:gt(1)").remove();
最简单的方法:
$("#mytable").find($("tr")).slice(1).remove()
-first引用该表的结果, -get元素列表和切它和删除列表中选定的元素