@deepjs/dom
Version:
dom utils
88 lines (80 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addClass = addClass;
exports.removeClass = removeClass;
exports.hasClass = hasClass;
exports.toggleClass = toggleClass;
exports.removeMatching = removeMatching;
// https://github.com/npm-dom/dom-classes
var toString = Object.prototype.toString;
function addClass(el, className) {
el.classList.add(className);
}
function removeClass(el, className) {
if ('[object RegExp]' == toString.call(className)) {
return removeMatching(el, className);
}
el.classList.remove(className);
}
function hasClass(el, className) {
return el.classList.contains(className);
}
function toggleClass(el, className) {
return el.classList.toggle(name);
}
function removeMatching(el, reg, ref) {
var arr = Array.prototype.slice.call(el.classList);
for (var i = 0; i < arr.length; i++) {
if (reg.test(arr[i])) {
el.classList.remove(arr[i]); // removeClass(el, arr[i]);
}
}
} // export function hasClass(el, cls) {
// if (!el || !cls) return false
// if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.')
// if (el.classList) {
// return el.classList.contains(cls)
// } else {
// return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1
// }
// };
// export function addClass(el, cls) {
// if (!el) return
// var curClass = el.className
// var classes = (cls || '').split(' ')
// for (var i = 0, j = classes.length; i < j; i++) {
// var clsName = classes[i]
// if (!clsName) continue
// if (el.classList) {
// el.classList.add(clsName)
// } else {
// if (!hasClass(el, clsName)) {
// curClass += ' ' + clsName
// }
// }
// }
// if (!el.classList) {
// el.className = curClass
// }
// };
// export function removeClass(el, cls) {
// if (!el || !cls) return
// var classes = cls.split(' ')
// var curClass = ' ' + el.className + ' '
// for (var i = 0, j = classes.length; i < j; i++) {
// var clsName = classes[i]
// if (!clsName) continue
// if (el.classList) {
// el.classList.remove(clsName)
// } else {
// if (hasClass(el, clsName)) {
// curClass = curClass.replace(' ' + clsName + ' ', ' ')
// }
// }
// }
// if (!el.classList) {
// el.className = trim(curClass)
// }
// };