如何从表中删除除前两个和最后一个之外的所有行?

Posted

技术标签:

【中文标题】如何从表中删除除前两个和最后一个之外的所有行?【英文标题】:How to remove all rows from a table except first two and last? 【发布时间】:2012-07-06 04:52:01 【问题描述】:

我已经看到很多关于如何选择除第一行和最后一行之外的所有内容的问题,但我想知道如何选择除前两行和最后一行之外的所有内容。现在我可以选择除前两个之外的所有内容:

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

我也需要一些方法来获得最后一个。也许有什么方法可以结合

:not(:last)

?

我对 jQuery 还很陌生,如果有任何帮助,我将不胜感激。

【问题讨论】:

【参考方案1】:

这是你需要的:

$("#sometable").find('tr').slice(2,-1).remove()

DEMO

jsperf 我和@Evan 的解决方案。

【讨论】:

@cnhe by slice 它比'tr:gt(1):not(:last)' 选择器快5 倍。所以,对于你来说,使用slice 可能比使用选择器更方便。【参考方案2】:

只需组合选择器:

$("#sometable").find("tr:gt(1):not(:last)").remove();

JSFiddle

【讨论】:

这就是我开始喜欢 jquery 的原因:答案通常非常简单直观。谢谢,效果很好! 没问题。您几乎总是可以将这些选择器读成一句话:“找到所有tr,它们位于第二个(1+1,因为它是从零开始)不是其父级的最后一个子级之后。”

以上是关于如何从表中删除除前两个和最后一个之外的所有行?的主要内容,如果未能解决你的问题,请参考以下文章

从 EventHandler 中删除除前两个参数外的所有参数

使用 JQuery 从列表中删除除前 N 个元素之外的所有元素

SQL查询:从表中删除除最新N之外的所有记录?

想要使用其他公司代码表从表中删除行

从表中删除 WHERE NOT MAX

如何从表中检索我的最后一个插入行?