2012-04-18 15 views
34

Ben var p ile bir şeyler yapmak istiyorum:"Sınıf değil" jQuery selektörü nasıl yazılır?

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

Ama eklenmiş belli Sınıf olup olmadığını bir şey yapmak istemiyoruz. Denedim: Bu gibi:

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

Bu çalışmaz. Varlığı nasıl hariç tutabilirim?

+2

Sadece 'netleştirmek için 'seçici ve' .not 'aynı davranması gerekiyordu. Anlamı, var p = $ ("li: son"). (". Sınıf"); 've' var p = $ ('li: son: not (.Class)') 'Aynı şekilde çalışmalı. >> Bkz. Http://jsfiddle.net/skram/76NNp/ << –

cevap

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

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

+4

': Notunuz (.Class)' aynı şeyi yapmalı, değil mi? –

+0

Teşekkürler, bu işe yaradı :) – Youss

+1

@Vega, OP aynı zamanda ': last' kullanıldığından beri, motorun ilk uygulanacağı konusunda bazı karışıklıklar olabilir. – Blazemonger

13

Aslında :not bir seçici olarak çalışır.

Sınıfa yok son öğe seçmek istiyorsanız

, bu

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

Bu, ilk li o sınıfı yok s ve sonra son seçer kullanmak onlar. See it working here.

olduğunu açıkça anlatmaktadır için aşağıdaki eşdeğerdir:

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

Ve ayrıca, bu eşdeğerdir: değil:

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

OP, SADECE '.Class' değilse IF'yi seçmek ister ve eğer öyleyse hiçbir şey seçmez. En azından böyle okudum. – Blazemonger

+0

@ mblase75 Bu doğru – Youss

+1

Kodda olup bitenleri biraz daha net hale getirmek için biraz daha açıklama ekledim. – cambraca

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

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

+0

Benim için çalışan bu. Elementin birden fazla sınıfa sahip olması özellikle yararlıdır. –

İlgili konular