如何在节点上添加样式

有三种情况需要考虑

  • 节点没有样式,直接追加
  • 节点有样式:
  1. 节点已经包含了这个样式,直接返回
  2. 节点没有包含这个样式,获取到现有样式后进行字符串连接,注意中间要有空格,在添加到样式上
    //添加class
    Base.prototype.addClass = function(str) {
        var hasClass=function hasClass(str, substr) {
            return  str.match(new RegExp('(\s|^)'+substr+'(\s|$)'))? true : false;
        }
        for (var i = 0; i < this.elements.length; i++) {
            var className = this.elements[i].className;
            if (className) {
                //如果有class名了,追加样式
                if (hasClass(className, str)) {
                     return this;
                } else {
                     this.elements[i].className = className + " " + str;
                }
                
    
            } else {
                this.elements[i].className = str;
            }
    
        }
        return this;
    }
原文地址:https://www.cnblogs.com/t1amo/p/6755913.html