Created
December 6, 2012 17:28
-
-
Save ludder/4226313 to your computer and use it in GitHub Desktop.
Backwards compatible classList functions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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