【问题标题】: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 还很陌生,如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: jquery html-table jquery-selectors


    【解决方案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,因为它是从零开始)不是其父级的最后一个子级之后。”
    猜你喜欢
    • 2022-07-11
    • 2016-08-09
    • 2017-03-17
    • 2012-12-03
    • 1970-01-01
    • 2011-04-16
    • 2020-05-13
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多