classApi.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /**
  2. * @desc classApi
  3. |*| * classApi.isElement(el)
  4. |*| * classApi.hasClass(el,cls)
  5. |*| * classApi.addClass(el,cls)
  6. |*| * classApi.removeClass(el,cls)
  7. |*| * classApi.toggleClass(el,cls)
  8. */
  9. var classApi = {
  10. isElement: function isElement(el) {
  11. return el && el.nodeType === Node.ELEMENT_NODE;
  12. },
  13. hasClass: function hasClass(el, cls) {
  14. return new RegExp('(\\s|^)' + cls + '(\\s|$)').test(el.className);
  15. },
  16. addClass: function addClass(el, cls) {
  17. if (!this.hasClass(el, cls)) {
  18. el.className += ' ' + cls;
  19. }
  20. },
  21. removeClass: function removeClass(el, cls) {
  22. if (this.hasClass(el, cls)) {
  23. var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
  24. el.className = el.className.replace(reg, ' ');
  25. }
  26. },
  27. toggleClass: function toggleClass(el, cls) {
  28. if (this.hasClass(el, cls)) {
  29. var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
  30. el.className = el.className.replace(reg, ' ');
  31. } else {
  32. el.className += ' ' + cls;
  33. }
  34. }
  35. };
  36. module.exports = classApi;