jquery

2013-04-25 25 views
5

'da birden fazla sınıfın dışında bir sınıfa sahip olup olmadığını nasıl kontrol edeceğimi 1000'den fazla farklı sınıf oluşturabilen dinamik bir div'um var ... bir wordpress teması.jquery

Artık bir div'in 52 sınıftan birine sahip olup olmadığını kontrol etmek istiyorum.

.bg1, .bg2, .bg3 vs vs ...

Sana hasClass() kullanabilirsiniz biliyoruz;

Her birini nasıl kontrol edip değeri alırım. ben gerçekten jquery bilmiyorum unutmayın lütfen çıplak

<div id="wordpresspost" class="bodyclass post-id-193 wordpresswrap bg1"></div> 

haliyle Mesela burada div: D

Ben böyle bir şey olacağını düşünüyordum ama mantıken bu bana mantıklı değildir: (

var divclass = $("#wordpresspost").hasClass('bg1, bg2, bg3, bg4, bg5, bg6'); 

if(divclass == true){ 
    var divsclass = $(this); 
} 

Ben mesela ben diğerlerini değiştirmeden yeni bir sınıf onlar dinamik olarak addClass sonra .removeClass ve istiyoruz, bunu değiştirmek istiyorum çünkü sınıf bilmek gerekir

Öneri için şimdiden teşekkür ederiz :)

+0

eğer 'yapabileceklerini (elem.className.seach (yeniden)> -1) {...' –

cevap

4

starts with seçiciyi kullanabilirsiniz. Bununla

Caveat varsa başka sınıf o muhtemelen regex yardımcı olabilecek kaldırmak için

if($("#wordpresspost[class^=bg]").length > 0) 
{ 
.... 
} 

etkiledi olacağını bg [şey] ile başlar olmasıdır. Kullanım .is()

$("#wordpresspost[class^=bg]").each(function(){ 
    this.className = this.className.replace(/\bbg.*?\b/g, 'newclass'); 
}); 
+2

Ve sınıfı "bgColorBlue" sahip olduğunda, bunu başaramayacak. – Ian

+0

@PSCoder Sınıfı bilmem gerek çünkü onu değiştirmek istiyorum, örneğin .removeClass ve yeni bir sınıfa yeni bir sınıf ekledikten sonra diğerlerini değiştirmeden dinamik – Robert

+0

@ Ian ile aynı fikirdeyim ... – PSL

13

:

var divclass = $("#wordpresspost").is('.bg1, .bg2, .bg3, .bg4, .bg5, .bg6'); 
-1

yalnızca bir elemanda bg * arıyorsanız, sadece basit normal ifade kullanabilirsiniz.

var hasBg = /bg[\d]+/.test(document.getElementById("mydiv").className); 
0
var el = document.getElementById('wordpresspost'); 
var regxpr = /\b(bg(?:[1-9]|[1-4]\d|5[0-2]))\b/g, match; 
while(match = regxpr.exec(el.className)){ 
    // match[1] contains the current matching class 
    console.log(match[1]); 
    // Then you can do: 
     $(el).removeClass(match[1]).addClass(replacementForMatch); 
} 

JSFiddle