2010-11-10 12 views
13

मैं किसी तत्व से कक्षा को निकालने के लिए jquery का उपयोग करने की कोशिश कर रहा हूं (यदि यह मौजूद है तो समय से पहले नहीं जानना) और इसे बदलने के लिए एक नया तत्व जोड़ें।jquery एक वर्ग को हटा रहा है (यदि यह मौजूद है और एक नई कक्षा जोड़ रहा है)

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

धन्यवाद

+1

क्या आपको यह जानने की ज़रूरत है कि पुरानी कक्षा में इसे हटाने से पहले क्या है? .removeClass() सफल होगा चाहे वह मौजूद है या नहीं। दूसरे शब्दों में, यदि यह अस्तित्व में है तो इसे हटा दिया जाता है, यदि यह अस्तित्व में नहीं है तो यह छोड़ दिया जाता है। –

उत्तर

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

यह सही है। पहले जांच करने की जरूरत नहीं है; यदि यह वहां है, तो यह जाता है, यदि नहीं, तो यह पहले से ही चला गया है।

एफवाईआई, आप टॉगल क्लास() को भी टॉगल कर सकते हैं और कक्षा को जोड़/हटा सकते हैं, भले ही यह पहले से मौजूद है या नहीं।

+1

+1, मेरे (अब हटाए गए) उत्तर से 24 सेकंड तेज है। –

+0

ध्यान रखें कि आप एक ही समय में एक से अधिक कक्षा को हटा सकते हैं, removeClass() को अलग-अलग स्थान से सूचीबद्ध करके, $ (this) .removeClass ('one two'); –

+0

बस उत्सुक, यह JQuery दस्तावेज़ में क्यों नहीं बताता है (या यह करता है?)। मैं बस सोच रहा हूं कि मुझे कैसे पता होना चाहिए कि कक्षा में मौजूद नहीं होने पर यह कोई त्रुटि नहीं फेंकता है। धन्यवाद। – bba

9

आप उपयोग कर सकते हैं hasClass:

इस सबसे अच्छा तरीका है (मैं skepticle क्योंकि इसके अगर वर्ग निकालने से पहले से मौजूद है देखने के लिए जाँच नहीं कर रहा हूँ) होगा

if ($(elem).hasClass(oldClass)){ 
    // it has class 
} else { 
    // it doesn't have specified class 
} 

विवरण: निर्धारित करें कि मिलान किए गए तत्वों में से कोई भी है दिए गए वर्ग ned।

3
toggleClass 

आप यह करने के लिए उम्मीद करेंगे क्या करता है।

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