我想從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