I am using JavaScript and I want to add/remove a Class attribute if a button is clicked. I am able to add the class, but I don\'t know how to remove it. how can I do that?
For cross-browser support:
buttonCom.onclick = function() {
box.className = ''; // IE
box.removeAttribute('class'); // Others
};
In the future-ish, you can also consider Element.classList.
var d = document.getElementsByTagName('div')[0];
d.classList; // []
d.classList.add('foo'); // undefined
d.classList; // ["foo"]
d.classList.remove('foo'); // undefined
d.classList; // []
I say future-ish b/c you have to consider this IE < 10.
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
You can use RegExp in theses three functions to check class existance, add class, and remove class. Here is the source openjs
The nicest way to set classes with Javascript is to use the className property:
// to add
box.className = 'move';
// to remove
box.className = '';
Simple:
box.removeAttribute('class');
See https://developer.mozilla.org/en/DOM/element.removeAttribute
You should consider jQuery, than you can just use this: $('.itemclass').removeClass('classname');