详解原生JS动态添加和删除类
由于需要,给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类
添加和和删除类有三种方法
首先等到一个dom对象(也叫dom元素),通过document.getElement……的几种方法得到
如`
letelement=document.getElementById("box");
1.通过类名,获取类名:el.className,赋值:el.className="className"会覆盖掉原来的类
2.通过属性,获取类名:el.getAttribute("class");赋值:el.setAttribute("class","className1className2");会覆盖掉原来的类
3.通过属性节点attributeNode(性能差一点,但能兼容ie,getAttribute()ie的有些版本不支持)setAttributeNode()方法向元素中添加指定的属性节点。
如果这个指定的属性已存在,则此方法会替换它。,获取类名:getAttributeNode("class").value,赋值:
letattr=document.createAttribute("class"); attr.nodeValue="className"; el.setAttributeNode(attr)
4.通过classList属性,获取类名el.classList;追加类名:el.classList.add("className");删除类:el.calssList.remove("className");
上边四种方法,classList最灵活,最好好用,但是不支持ie9以下的浏览器,兼容性要差一些
代码如下:
html
按钮1