Skip to content

Instantly share code, notes, and snippets.

@drzhbe
Created June 6, 2017 23:11
Show Gist options
  • Save drzhbe/5e3a1af775a5fad9d77e7a0f84518947 to your computer and use it in GitHub Desktop.
Save drzhbe/5e3a1af775a5fad9d77e7a0f84518947 to your computer and use it in GitHub Desktop.
DOM helpers
/*
What's better way to find a class match – `classes.indexOf(className)` or `for loop + return`?
*/
function hasClass(el, className) {
var classes = el.className.split(' ');
for (var i = 0; i < classes.length; i++) {
if (classes[i] === className) {
return true;
}
}
return false;
}
function addClass(el, className) {
var classes = el.className.split(' ');
for (var i = 0; i < classes.length; i++) {
if (classes[i] === className) {
return;
}
}
classes.push(className);
el.className = classes.join(' ');
}
function removeClass(el, className) {
// assume using our addClass, which excludes duplicate classes
var classes = el.className.split(' ');
for (var i = 0; i < classes.length; i++) {
if (classes[i] === className) {
break;
}
}
classes.splice(i, 1);
el.className = classes.join(' ');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment