Skip to content

Instantly share code, notes, and snippets.

@robpataki
Last active April 6, 2018 08:40
Show Gist options
  • Save robpataki/4e771226fbe053a308b657d658869d36 to your computer and use it in GitHub Desktop.
Save robpataki/4e771226fbe053a308b657d658869d36 to your computer and use it in GitHub Desktop.
Vanilla JavaScript utility functions to manipulate DOM element class names (IE6 compatible)
(function() {
function pruneSpaces(el) {
el.className = el.className.replace(/^\s+|\s+$/g, '');
}
function toggleClass(el, className) {
if (hasClass(el, className)) {
removeClass(el, className);
} else {
addClass(el, className);
}
pruneSpaces(el);
}
function addClass(el, className) {
if (!hasClass(el, className)) {
el.className += ' ' + className;
}
pruneSpaces(el);
}
function removeClass(el, className) {
if (hasClass(el, className)) {
el.className = el.className.replace(className, '');
}
pruneSpaces(el);
}
function hasClass(el, className) {
return el.className.indexOf(className) >= 0;
}
// Expose the util functions on the global namespace
window.vanillaJSUtils = {
toggleClass: toggleClass,
addClass: addClass,
removeClass: removeClass
};
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment