2014-02-24 46 views
0

如何選擇一個父母div中除一個以外的所有div?比方說,我有這樣的代碼:如何選擇除了一個以外的同一父母div中包含的所有div div

<div id="parent"> 
    <div id="child1"></div> 
    <div id="child2"></div> 
    <div id="child3"></div> 
</div> 

我要選擇#child1#child2。當然,我可以通常選擇他們,但假設我有很多孩子。

P.S.我不希望任何像last或者something這樣的選擇器,因爲它沒有說它總是我想要跳過的最後一個。

回答

3

您可以使用not()

$('#parent div').not('#child3') 

:not選擇:

$('#parent div:not("#child3")'); 

這將選擇除#child3元素父格內的所有孩子的div。

+0

有沒有在這兩個性能有什麼區別?我的意思是:這兩個中的哪一個更快(如果是,哪一個)? – Fiodor

+1

您可以使用[jsperf](http://jsperf.com/)進行測試。但我認爲這很可能是一樣的。 – Felix

+2

我已經測試過,'.not()'比':not()'更快'6.05%' – Felix

1

可以使用:not僞類CSS ...沒有必要的Jquery

JSFiddle Demo

#parent div:not(#child3) { 
    /* your styles here */ 
} 
+0

我知道,但我需要它在jQuery中被選中;)。 – Fiodor

+1

然後不要使用CSS作爲標籤, –

+0

我使用它,因爲你可以看到它也可以在jQuery代碼中使用普通的css選擇器。所以實際上,如果我只能接受css的方式來做到這一點,我可以讓它成爲$('css_code')。 – Fiodor

2
$('#parent > div').not('#child3'); 

$('#parent > div:lt(2)'). 

$('#parent > div:not("#child3")'); 
2

您可以使用not方法。

$("#parent > div").not("#child3") 

這將選擇父DIV的所有直接孩子除了child3

相關問題