2012-04-18 42 views
34

我想要做的事與VAR號碼:如何編寫「如果不是類」jQuery選擇器?

var p = $("li:last"); 

但我不想做任何事情,如果不存在附加一定的階級。我試過了:不是這樣的:

var p = $("li:last:not(.Class)"); 

這是行不通的。我如何排除我的var中的.Class?

+2

我只想澄清':不'選擇器和'.not'應該表現相同。意思是,'var p = $(「li:last」)。not(「.class」);'和'var p = $('li:last:not(.Class)')'應該以同樣的方式工作。 >>看你的代碼工作http://jsfiddle.net/skram/76NNp/ << – 2012-04-18 19:50:19

回答

48
var p = $("li:last").not(".Class"); 

http://api.jquery.com/not/

+4

':not(.Class)'應該做同樣的事情,不是嗎? – 2012-04-18 19:37:19

+0

謝謝,那工作:) – Youss 2012-04-18 19:40:29

+1

@Vega,因爲OP也使用':last',所以引擎中可能會有一些混淆,哪些首先被應用。 – Blazemonger 2012-04-18 19:40:31

13

其實:not不工作的選擇。

如果你想選擇一個沒有階級的最後一個元素,使用該

var p = $("li:not(.Class):last"); 

這將選擇第一個li s表示沒有這樣的課,然後最後的他們。 See it working here

要非常清楚,這是等價的:

var p = $("li:not(.Class):last"); 
var p = $("li").not(".Class").last(); 

而且,而且,這些是等價的:

var p = $("li:last:not(.Class)"); 
var p = $("li").last().not(".Class"); 
+1

OP似乎只想選擇最後一個元素,如果它不是'.Class',並且如果是,則不選擇。至少我是這樣讀的。 – Blazemonger 2012-04-18 19:41:45

+0

@ mblase75這是正確的 – Youss 2012-04-18 19:42:43

+1

我補充了一些進一步的解釋,以使代碼中發生的事情更清晰一些。 – cambraca 2012-04-18 19:43:22

2
var p = $("li:last"); 
if (!p.hasClass('Class')){ 
//some stuff 
} 

http://api.jquery.com/hasClass/

+0

這是一個爲我工作。特別有用的元素有一個以上的類。 – 2014-10-28 15:50:46

相關問題