suyiScreen/node_modules/comutils/classApi.js

38 lines
1.0 KiB
JavaScript

/**
* @desc classApi
|*| * classApi.isElement(el)
|*| * classApi.hasClass(el,cls)
|*| * classApi.addClass(el,cls)
|*| * classApi.removeClass(el,cls)
|*| * classApi.toggleClass(el,cls)
*/
var classApi = {
isElement: function isElement(el) {
return el && el.nodeType === Node.ELEMENT_NODE;
},
hasClass: function hasClass(el, cls) {
return new RegExp('(\\s|^)' + cls + '(\\s|$)').test(el.className);
},
addClass: function addClass(el, cls) {
if (!this.hasClass(el, cls)) {
el.className += ' ' + cls;
}
},
removeClass: function removeClass(el, cls) {
if (this.hasClass(el, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
el.className = el.className.replace(reg, ' ');
}
},
toggleClass: function toggleClass(el, cls) {
if (this.hasClass(el, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
el.className = el.className.replace(reg, ' ');
} else {
el.className += ' ' + cls;
}
}
};
module.exports = classApi;