2013-04-25 10 views
5

में एकाधिक कक्षाओं से कक्षा है या नहीं, मेरे पास एक गतिशील div है जो 1000 से अधिक विभिन्न वर्गों को उत्पन्न कर सकता है ... यह एक WordPress विषय है।यह जांचने के लिए कि क्या एक div में jquery

अब मैं यह जांचना चाहता हूं कि एक div में 52 वर्गों में से एक है या नहीं।

.bg1, .bg2, .bg3 आदि आदि ...

मुझे पता है कि आप hasClass() का उपयोग कर सकते हैं;

लेकिन मैं प्रत्येक के लिए कैसे जांचूं और फिर मूल्य प्राप्त करूं। उदाहरण के लिए यहाँ div है के रूप में यह खड़ा है

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

कृपया ध्यान नंगा मैं वास्तव में jQuery पता न: डी

मैं सोच रहा था यह कुछ इस तरह होगा, लेकिन तार्किक यह मेरे लिए कोई मतलब नहीं है: (

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

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

मैं कक्षा में जानने की क्योंकि मैं इसे बदलना चाहते हैं की जरूरत है, उदाहरण के लिए मैं .removeClass के लिए और फिर addClass दूसरों को बदले बिना एक नया वर्ग के रूप में वे गतिशील हैं चाहते हैं

सलाह के लिए अग्रिम धन्यवाद :)

+0

मैं 'करते हैं तो (elem.className.seach (री)> -1) {...' –

उत्तर

4

आप starts with चयनकर्ता का उपयोग कर सकते हैं। इस के साथ

चेतावनी है कि अगर आपके पास एक और वर्ग के साथ bg [कुछ] शुरू होता है यह

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

प्रभावित हो जाएगा आदेश में दूर करने के लिए यह शायद regex मदद कर सकता है है।

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

और जब यह वर्ग "bgColorBlue" है, यह असफल हो जायेगी। – Ian

+0

@PSCoder मुझे कक्षा को जानने की जरूरत है क्योंकि मैं इसे बदलना चाहता हूं, उदाहरण के लिए मैं .removeClass करना चाहता हूं और फिर दूसरों को बदलने के बिना एक नई कक्षा को जोड़ना चाहता हूं क्योंकि वे गतिशील हैं – Robert

+0

@Ian मैं आपके साथ सहमत हूं ... – PSL

13

उपयोग .is():

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

आप केवल एक तत्व में bg * की तलाश कर रहे हैं, तो आप सिर्फ सरल regex का उपयोग कर सकते हैं।

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

संबंधित मुद्दे