UNPKG

@deepjs/dom

Version:

dom utils

88 lines (80 loc) 2.36 kB
"use strict"; 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) // } // };