当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《jQuery删除除第一个之外的所有表行》经验,为你挑选了7个好方法。

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

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

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

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



1> Strelok..:

这应该工作:

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


@ user594166使用gt(1)而不是gt(0).
来自jQuery网站:`因为:gt()是一个jQuery扩展而不是CSS规范的一部分,使用:gt()的查询无法利用本机DOM querySelectorAll()方法提供的性能提升.为了在现代浏览器中获得更好的性能,请使用$("your-pure-css-selector").slice(index).我建议使用$("#mytable> tr").slice(1).remove() ;
如果我想删除第一行和第二部分之外的表行怎么办?

2> tvanfosson..:

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

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

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

如果您有TBODY元素,则可以执行以下操作:

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

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


我同意 - 谢谢.我希望我能给出多个答案.
re:做一些不同的事情....这有效:`$('someTableSelector> tbody:last> tr:not(:first)').remove();`

3> jpmorin..:

另一种方法是使用jQuery的empty()函数和表中的thead和tbody元素.

表的示例:

Col1Col2
somecontent
to beremoved

和jQuery命令:

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

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


这可能会提供所有解决方案的最佳性能,并且非常优雅.

4> Dave Ward..:

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

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



5> CMPalmer..:

您的选择器不需要在您的删除内.

它应该看起来像:

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

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



6> Sanket Uteka..:

考虑一个带有id的表tbl:jQuery代码将是:

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



7> Makubex..:
$('#table tr').slice(1).remove();

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

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有