38 lines
1.0 KiB
JavaScript
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; |