使用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元素列表和切它和删除列表中选定的元素

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top