suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - So implementieren Sie jqs Addclass und Removeclass in js. Beispielsweise ist es ursprünglich class="aa" und muss in class="aa bb" geändert werden.

So implementieren Sie jqs Addclass und Removeclass in js. Beispielsweise ist es ursprünglich class="aa" und muss in class="aa bb" geändert werden

怪我咯怪我咯2690 Tage vor1113

Antworte allen(5)Ich werde antworten

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:46:24

    js有个classlist的接口
    MDN链接

    不过你要考虑下兼容性。

    Antwort
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 10:46:24

    replace

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:46:24

    if (!this.hasClass(obj, class)) obj.className += " " + class;

    Antwort
    0
  • ringa_lee

    ringa_lee2017-07-05 10:46:24

    elem.className
    或者
    elem.classList
    感觉classList比较好,elem.classList.add('bb')就可以了
    另外,jQuery源码是通过className实现的addClass和removeClass
    最后加一句,这种偏基础的问题要学会自己百度google

    Antwort
    0
  • 学习ing

    学习ing2017-07-05 10:46:24

    function addClass(ele,name){
            if(ele && name){
                var cn = ele.className;
                if(!cn){
                    ele.className = name;
                }else if(cn.indexOf(name) === -1){
                    ele.className = cn.replace(/\s*$/,' '+name);
                }
            }
    }
    function removeClass(ele,name){
            var reg1 = new RegExp('^\\s*\\b'+ name +'\\b\\s*$');
            var reg2 = new RegExp('^\\s*' + name+'\\b');
            var reg3 = new RegExp('\\b'+ name + '\\s*$');
            var reg4 = new RegExp('\\s*\\b'+name+'\\b\\s*');
            if(ele && name){
                var cn = ele.className;
                if(cn && cn.indexOf(name) > -1){
                    if(reg1.test(cn)){
                        ele.className = '';
                    }else if(reg2.test(cn)){
                        ele.className = cn.replace(reg2,'');
                    }else if(reg3.test(cn)){
                        ele.className = cn.replace(reg3,'');
                    }else{
                        ele.className = cn.replace(reg4,' ');
                    }
                }
            }
    };

    Antwort
    0
  • StornierenAntwort