removeclass 传入两个类_JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())...

var box = document.getElementById("box");

box.id = "pox";

将id = “box”,改为id = “pox”;

但id = “box”依然存在,这样就不符合W3C标准。不建议使用。

box.className = "box5"; 将会把原来的className 清除只有一个类名为box5的类。

bd79eafbca13fe5a880f0d304a15f581.png

如果想有用className避免这种缺陷,可以写成 box.className ="box5 box6 ....",但是这种方法太过麻烦,会造成冗余,因此可以用下面的方法:

原生的js中并没有添加/删除类这些属性或方法,为了实现这一功能,因此写出了一下两个函数:

1.js原生的addClass()

首先判断是否有要添加的类名:

function hasClass(element, cName){

return !!element.className.match(new RegExp('(\\s|^)' + cName + '(\\s|$)'));

}

判断后,如果没有则添加

function addClass(element, cName){

if (!hasClass(element, cName)) {

return element.className += " " + cName;

};

}

addClass(box,"box6");

addClass(box,"box7");

2755d0dbdd31ca5ffe5110dadf00e6a9.png

此时的addClass()添加的类并不会覆盖掉原来的类,减少了冗余。

2.从多个类中删除一个元素 removeClass,其余类保留:

function removeClass(element,cName){

if (hasClass(element,cName)) {

element.className = element.className.replace(new RegExp('(\\s|^)' + cName + '(\\s|$)'), " ");

};

}

removeClass(box,"box6"); //test,box,box7

44a4725db5d0379f489a0d565a18aa51.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值