javascript - js怎么實現jq的addclass,removeclass,例如本來是 class="aa",要變成class="aa bb"
問題描述
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,’ ’);} }}};
![css3 - [CSS] 動畫效果 3D翻轉bug](http://www.aoyou183.cn/attached/image/news/202304/110831f073.png)