问题描述
js怎么实现jq的addclass,removeclass,例如本来是 class='aa',要变成class='aa bb',注意不用jquery
问题解答
回答1:js有个classlist的接口MDN链接
不过你要考虑下兼容性。
回答2:replace
回答3:if (!this.hasClass(obj, class)) obj.className += ' ' + class;
回答4:elem.className或者elem.classList感觉classList比较好,elem.classList.add(’bb’)就可以了另外,jQuery源码是通过className实现的addClass和removeClass最后加一句,这种偏基础的问题要学会自己百度google
回答5: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 +’bs*$’);var reg2 = new RegExp(’^s*’ + name+’b’);var reg3 = new RegExp(’b’+ name + ’s*$’);var reg4 = new RegExp(’s*b’+name+’bs*’);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,’ ’);} }}};