यहाँ कई सादे जावास्क्रिप्ट कार्यों आप सादे जावास्क्रिप्ट में वर्ग के नाम जोड़ तोड़ के लिए उपयोग कर सकते हैं। पर किसी भी अन्य वर्गों को प्रभावित किए बिना
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function addClass(elem, cls) {
elem.className += (" " + cls);
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) != -1) ;
}
function toggleClass(elem, cls) {
if (hasClass(elem, cls)) {
removeClass(elem, cls);
} else {
addClass(elem, cls);
}
}
function toggleBetweenClasses(elem, cls1, cls2) {
if (hasClass(elem, cls1)) {
removeClass(elem, cls1);
addClass(elem, cls2);
} else if (hasClass(elem, cls2)) {
removeClass(elem, cls2);
addClass(elem, cls1);
}
}
आप black
और normal
वर्गों के बीच टॉगल करने के लिए करना चाहता था, तो: यह इन कार्यों में एक छोटे से अतिरिक्त काम लेता है केवल पूरी कक्षा नाम से मेल और कोई अतिरिक्त स्थान से बचने के लिए पहले/classnames के बाद यहाँ
function black(id) {
var obj = document.getElementById(id);
if (obj) {
toggleBetweenClasses(obj, "black", "normal");
}
}
कार्य उदाहरण: आप "काला" वर्ग को जोड़ने के लिए, जब तक कि "सामान्य" पहले से ही मौजूद थे चाहता है तो http://jsfiddle.net/jfriend00/eR85c/
, आप कर सकते थे निर्दिष्ट वस्तु, आप ऐसा कर सकता है ऐसा करते हैं:
function black(id) {
var obj = document.getElementById(id);
if (obj && !hasClass(obj, "normal")) {
addClass(obj, "black");
}
}
शायद https://developer.mozilla.org/en-US/docs/DOM/element.classList आप कर सकते हैं। यह jQuery की तरह है लेकिन सादा जावास्क्रिप्ट में है, लेकिन केवल बहुत ही कम ब्राउज़र पर काम करता है। – Oriol