【问题标题】:jquery selectors - All rows of a table except the last 3 recordsjquery 选择器 - 除最后 3 条记录外的表的所有行
【发布时间】:2015-11-25 17:02:03
【问题描述】:

如何使用 jQuery 选择器选择表中的所有行除了最后 3 行? 提前致谢。

【问题讨论】:

    标签: javascript jquery jquery-selectors


    【解决方案1】:

    正如@Lye Fisk 指出的那样,您需要起始索引来获取除最后 3 行之外的所有行

    $('#yourtable tr').slice(0, -3) //should return all rows except last 3
    

    您可以使用带有负数的 jQuery slice 来弹出结束元素。

    $('#yourtable tr').slice(-3) //should return the last 3
    

    【讨论】:

    • 谢谢,维加。但是该代码只选择最后 3 条记录...我需要每条记录 除了最后 3 条记录...
    • @andcl85: .slice(0, -3) 请务必点击答案中的链接并阅读文档,以便了解其工作原理。
    【解决方案2】:

    一种解决方案是使用带有负值的:lt 选择器:

    $("#tableId tr:lt(-3)")
    

    正如@squint 所指出的,这种方法在性能方面并不是最优的。为了获得更好的性能,请使用@Vega 的答案。

    来自:lt 文档:

    因为:lt() 是一个 jQuery 扩展而不是 CSS 的一部分 规范,使用 :lt() 的查询不能利用 原生 DOM 提供的性能提升 querySelectorAll() 方法。为了在现代浏览器中获得更好的性能,请使用 $("your-pure-css-selector").slice(0, index) 代替。

    【讨论】:

    • @andcl85:这行得通,但我会使用.slice() 来提高选择效率。 :lt(-3) 是一个非标准的 jQuery 发明,因此它没有经过优化并且在 jQuery 之外没有用处。
    • @squint 感谢眯眼的洞察力!我不知道。我试图将其适当地添加到答案中。
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2017-05-19
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多