我想从jquery选择器中排除第一个和第二个元素。我尝试这样做:jquery选择器 - 排除第一个和第二个
$('p:not(:nth-child(1),:nth-child(2))')
但这仅排除的第一个元素...感谢
我想从jquery选择器中排除第一个和第二个元素。我尝试这样做:jquery选择器 - 排除第一个和第二个
$('p:not(:nth-child(1),:nth-child(2))')
但这仅排除的第一个元素...感谢
这个jQuery序列使用.slice()
,丢弃$('p')
选择前两个元素:
$('p').slice(2).
参见http://jsfiddle.net/alnitak/zWV7Z/
注意,这是不一样nth-child
- ,而不是在DOM中的相对位置排除基于所述整个集合在第一选择中发现的元素。
我更喜欢这个解决方案。谢谢 – simPod
$('p').not(":nth-child(1)").not(":nth-child(2)")
$('p').not($('p').eq(0), $('p').eq(1))
简单:
$('p:gt(1)')
http://api.jquery.com/gt-selector/
演示 http://jsfiddle.net/NtFYq/1/
如参宿一的评论指出,如果性能是一个问题,你可以用他的slice
解决方案
个非常感谢@Alnitak指出了这一点:)
尝试:
参考: http://www.w3.org/TR/selectors/#negation
从参考: “的否定伪类,:没有(X) ,是一个函数表示法,它将简单选择器(不包括否定伪类本身)作为参数。“
这与CSS相关,但不适用于jQuery; jQuery版本的':not()'选择器允许使用逗号分隔的任意复杂选择器的列表,并且在jQuery字符串中编写CSS有效版本的唯一原因是性能(请参阅其中一个的评论关于'querySelectorAll()'的答案)。我会尽快发布详细说明这种差异的问题...... – BoltClock
如果你真的想写一个CSS有效的版本,它应该是'p:not(:nth-child(1)):not(:nth-child(2))',而不是'p:not(:第n个孩子(1))以下,p:(:第n个孩子(2))'。再次,这将在我的文章中介绍。 – BoltClock
@BoltClock:我知道,选择器需要产生否定联合[1st,2nd]而不是每个[1st]和[2nd]否定的联合,因为后者将包含自[1st ]和[第二]是相互独立的。谢谢。 – Faust
如果你的第一个和第二个孩子实际上是'p'元素,这应该是有效的。像这样的问题在提供工作标记时最好。 – BoltClock