javascript - js怎么实现jq的addclass,removeclass,例如本来是 class="aa",要变成class="aa bb"

【字号: 日期:2022-06-02浏览:57作者:雯心

问题描述

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

标签: JavaScript
相关文章: