2012-01-28 15 views
10

JQuery'yi herhangi bir sınıf yoksa yalnızca bir öğe seçmek için nasıl kullanabilirim?jQuery: Sadece bir sınıf adı olmadığında bir öğe seçin

html yazıcısının öğeye bir sınıf ekleyerek varsayılan jQuery eylemini geçersiz kılmasına izin veren bir sayfa yazıyorum. Hiç bir sınıf olmalı.

Yani biçimlendirme olabilir: Ben bir sınıf olmadığı için yalnızca ikinci liste elemanı seçmek için jQuery istiyorum

<ul> 
    <li class="override"></li> 
    <li></li> 
</ul> 

.

.hasClass() 'a baktım, ancak belirli bir sınıf adı gerektiriyor gibi görünüyor.

Teşekkürler! $('li').not('li[class]')

cevap

18

:not() Selector – jQuery API

$('li:not([class])') 
+0

Mükemmel! Bu istediğim şeyi yaptı. –

+0

Yardım etmekten memnun oldum. Eğer cevabınız soldaki onay düğmesine tıklayarak cevabınızı kabul edebilirsiniz :) –

2

Bu şeyi yapmalıdır wi "has attribute", class özniteliğine sahip olmayan li öğelerini bulmak için.

İkinci kısımda, özniteliği boş bir dizeye ayarlanmış herhangi bir li öğeyi bulur.

+1

Kişisel ikinci 'li' türü seçici gereksiz olduğunu. –

+0

Doğru. Ve benim çözümüm de xD'den daha yavaş. En azından bugün yeni bir şey öğrendim – clime

+0

Her nasılsa tek seçiciyle: öznitelik özniteliğinin bundan daha hızlı çalışacağını düşünüyorum. Ben bir yerde okudum: çok daha hızlı değil. Değil - .not çözümün DOM'yi iki kez geçmesi gerektiğine inanıyorum. –

8

Bu yapmalıyım:

$('li:not([class]),li[class=""]') 

Demo: http://jsfiddle.net/aMC5X/

ilk bölümü, li:not([class])"not selector" kullanır

+0

İlginç. İkinci öğe, "sınıf yok" ifadesine boş bir sınıf adı olanları yerleştirmek mi? Muhtemelen iyi bir fikir - asla bilemezsiniz. –

+0

Eğer verdiğim jsfiddle ile oynayabiliyorsan, ikinci kısım olmadan ne olduğunu görebiliyorsun ve sizin durumunuza ihtiyacınız olup olmadığına karar verebiliyorsunuz (bence siz buna ihtiyacınız var). – nnnnnn

1

Bunu kullanabilirsiniz:

if (!jQuery('li').hasClass('myClass') { 
    do something... 
} 
İlgili konular