Skip to content

Instantly share code, notes, and snippets.

@ludder
Created December 6, 2012 17:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ludder/4226313 to your computer and use it in GitHub Desktop.
Save ludder/4226313 to your computer and use it in GitHub Desktop.
Backwards compatible classList functions
/**
* Check element has a certain classname
* We cannot use classList yet because of browser support
* @param {Object} ele DOM element
* @param {String} cls Classname
* @return {Boolean} True is classname is found
*/
function hasClass(ele,cls) {
if (ele === null || cls === '') return false;
return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
/**
* Remove class from element
* @param {Object} ele DOM element
* @param {String} cls Classname
*/
function removeClass(ele,cls) {
if (hasClass(ele,cls)) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className=ele.className.replace(reg,' ');
}
}
/**
* Toggle classname
* @param {Object} elem DOM element
* @param {String} cl Classname to toggle
* @return {Object} Same DOM element with/without given classname
*/
function toggleClass(elem, cl) {
if (elem.className.indexOf(cl) != -1) {
elem.className = elem.className.replace(cl, '');
} else {
elem.className += ' ' + cl;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment