2010-11-10 13 views
13

Bir nesneyi bir öğeden kaldırmak için jquery'yi kullanıyorum (varsa önceden bilmeden) ve onu değiştirmek için yeni bir öğe ekleyin.jquery bir sınıfı siliyor (varsa ve yeni bir sınıf ekliyorsa)

$(elem).removeClass(oldClass).addClass(newClass); 

sayesinde

+1

Eski sınıfı kaldırmadan önce mi bilmeniz gerekiyor mu? .removeClass() var olup olmadığını başaracaktır. Diğer bir deyişle, eğer varsa, çıkarılır, eğer yoksa, o zaman atlanır. –

cevap

24
$(elem).removeClass(oldClass).addClass(newClass); 

Bu mükemmel. İlk önce kontrol etmeye gerek yok; eğer varsa, gider, çoktan gitti.

FYI, ayrıca zaten var olup olmadığına bağlı olarak bir sınıfı da ekleyebilir ve bir sınıf ekleyebilir/kaldırabilirsiniz.

+1

+1, 24 saniye (şimdi silindi) cevabımdan daha hızlı. –

+0

Ayrıca, bir seferde birden fazla sınıfı removeClass() ile ayırarak, ayrılmış alanı ($ (this) .removeClass ('one two'); –

+0

Sadece merak ediyorum, neden JQuery belgelerinde bunu belirtmiyor (ya da yapıyor mu?). Sadece sınıfın mevcut olmaması durumunda bir hata atmadığını bilmem gereken şeyi merak ediyorum. Teşekkürler. – bba

9

kullanabilirsiniz hasClass:

bu en iyi yolu (ben onun sınıf çıkarmadan önce olup olmadığını görmek için kontrol etmiyor çünkü skepticle değilim) olurdu
if ($(elem).hasClass(oldClass)){ 
    // it has class 
} else { 
    // it doesn't have specified class 
} 

Açıklama: Eşleştirilen öğelerin öğelerinden birinin hangig olup olmadığını belirleme verilen sınıf ned.

3
toggleClass 

bunu yapmak beklenir onu yapar.

İlgili konular