Home  >  Q&A  >  body text

javascript - How to implement jq's addclass and removeclass in js. For example, it is originally class="aa" and needs to be changed to class="aa bb"

How to implement jq's addclass and removeclass in js. For example, it is originally class="aa" and it needs to be changed to class="aa bb". Be careful not to use jquery

怪我咯怪我咯2641 days ago1047

reply all(5)I'll reply

  • 曾经蜡笔没有小新

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

    js has a classlist interface
    MDN link

    But you have to consider compatibility.

    reply
    0
  • 女神的闺蜜爱上我

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

    replace

    reply
    0
  • 習慣沉默

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

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

    reply
    0
  • ringa_lee

    ringa_lee2017-07-05 10:46:24

    elem.className
    or
    elem.classList
    I feel classList is better, elem.classList.add('bb') will do
    In addition, the jQuery source code implements addClass and removeClass through className
    Finally, this bias For basic questions, you need to learn how to Baidu and Google yourself

    reply
    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,' ');
                    }
                }
            }
    };

    reply
    0
  • Cancelreply