【问题标题】:Select Element with index greater than 3 and less than 6选择索引大于 3 且小于 6 的元素
【发布时间】:2012-01-16 13:59:20
【问题描述】:

我想选择其索引大于 3 且小于 6 的元素 例如:$("td:gt(3)")$("td:lt(6)") ?

【问题讨论】:

    标签: jquery selector


    【解决方案1】:

    利用slice(start, end)

    $('td').slice(3,6)
    

    documentation

    【讨论】:

      【解决方案2】:

      只需将两者结合起来,它应该可以工作:

      $("td:gt(3):lt(6)");

      您可以使用任意数量的伪选择器。它们都将适用。

      但是,请注意slice 的回答会比这更有效率!

      更新

      上面的代码是错误的。您需要交换:lt:gt,因为在执行gt 选择器后,匹配元素的集合减少了,:lt 适用的索引不同:

      $("td:lt(6):gt(3)");
      

      但是,如上所述,slice 在性能方面会更好。如果您对性能会有多好感兴趣,我已经整理了一个quick test。结果如下(slice 快了近 4 倍):

      【讨论】:

      • 我用更大的桌子试了一下你的样品。你的回答应该是正确的,但我有一个奇怪的效果。 jsfiddle.net/gKbKQ/2 有什么想法吗?
      • @dknaack - 问题是选择器的方式错误。 :lt 必须先出现,否则索引错误(因为 :gt 会从匹配集中删除元素)。
      猜你喜欢
      • 2013-11-29
      • 2018-07-19
      • 2013-05-27
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2012-11-22
      • 2011-04-18
      相关资源
      最近更新 更多