原生javascript实现 hasClass addClass removeClass


class OperationClass {
  hasClass(ele, cls){
    cls = cls || '';
    if (cls.replace(/\s/g, '').length == 0) return false;
    return new RegExp(' ' + cls + ' ').test(' ' + ele.className + ' ');
  }

  addClass(ele, cls){
    if (!this.hasClass(ele, cls)) {
      ele.className = ele.className == '' ? cls : ele.className + ' ' + cls;
    }
  }

  removeClass(ele, cls){
    if (this.hasClass(ele, cls)) {
      let newClass = ' ' + ele.className.replace(/[\t\r\n]/g, '') + ' ';
      while (newClass.indexOf(' ' + cls + ' ') >= 0) {
        newClass = newClass.replace(' ' + cls + ' ', ' ');
      }
      ele.className = newClass.replace(/^\s+|\s+$/g, '');
    }
  }
}

var $ = new OperationClass();

var x = $.removeClass(document.getElementsByClassName('div')[0], 'div');
posted @ 2018-07-12 14:27  工作笔记_chen  阅读(436)  评论(0)    收藏  举报