如何从表格中删除除第一行和第二行以及最后一行之外的所有行?

11

我看到了很多关于如何选择表格除了第一行和最后一行的问题,但我想知道如何选择除了前两行和最后一行以外的所有内容。目前我有以下代码可以选择除了前两行以外的所有内容:

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

我需要一种方法来获取最后一个。也许可以与某些内容结合起来。

:not(:last)

我对jQuery还比较陌生,希望能得到帮助。

2个回答

20

这就是你需要的:

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

演示

我和@Evan的解决方案的js性能测试。

输入图像描述


使用 slice 方法比使用 'tr:gt(1):not(:last)' 选择器快大约5倍,因此对于您来说,使用 slice 可能更方便。 - Engineer

12

只需组合选择器:

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

JSFiddle


这就是为什么我开始喜欢jQuery的原因:答案通常是如此简单和直观。谢谢,它完美地运行了! - cnhe
没问题。而且你几乎总能把这些选择器读成一个句子:“查找所有在第二个(从0开始,所以是1+1)子元素之后的tr,它们不是其父元素中的最后一个子元素。” - Evan Mulawski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接