Skip to content

Instantly share code, notes, and snippets.

@mateuszkocz
Created July 20, 2013 16:04
Show Gist options
  • Save mateuszkocz/6045552 to your computer and use it in GitHub Desktop.
Save mateuszkocz/6045552 to your computer and use it in GitHub Desktop.
Dealing with classes (add, remove, has). Source: http://blog.ponyfoo.com/2013/07/09/getting-over-jquery
!function(exports){
var class_list = !!document.body.classList;
var s = '(\\s|^)'; // space or start
var e = '(\\s|$)'; // space or end
function getRegex(className){
return new RegExp(s + className + e, 'g');
}
exports.addClass = function(element, className){
if(class_list){
element.classList.add(className);
}else{
element.className += ' ' + className;
}
};
exports.removeClass = function(element, className){
if(class_list){
element.classList.remove(className);
}else{
var rclass = getRegex(className);
element.className = element.className.replace(rclass, '');
}
};
exports.hasClass = function(element, className){
if(class_list){
return element.classList.contains(className);
}else{
var rclass = getRegex(className);
return element.className.match(rclass);
}
};
}(window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment