美文网首页
原生JS更改元素类名

原生JS更改元素类名

作者: wwg9311 | 来源:发表于2019-12-11 11:36 被阅读0次

今天来聊一聊关于原生JS是如何更改元素的类名,习惯了jQuery后,我们感觉更改元素的类名是一件非常容易的事情——addClass()、removeClass()和toggleClass()让我们轻松实现了对类名的修改。

那么原生的js是如何实现的呢?主要有三种方法setAttribute()classNameclassList

setAttribute()

我们都知道,setAttribute()方法是创建或者改变元素的某个属性,那么我们就可以利用这个方法对元素的类名进行更改。具体方法是这样的el.setAttribute("class","classname"),

<div id="box"></div>
<script>
    document.getElementById("box").setAttribute('class','box')
    //<div id="box" class="box"></div>
</script>

需要注意的是,这个方法只兼容IE8+及其他浏览器,那IE7及以下的需要怎么处理呢?

方法还是通过setAttribute(),只不过属性名需改为“className”,具体的方法是这样的el.setAttribute("className","classname")

<div id="box"></div>
<script>
    document.getElementById("box").setAttribute('className','box')
    //<div id="box" class="box"></div>
</script>

看完上面的是不是都想放弃了,那没有兼容所有浏览器的呢?

className

className可以兼容所有的浏览器,当然了,这个也是我们在jQuery出现之前最常用的一个方法了,具体的方法是这样的el.className="classname"

<div id="box"></div>
<script>
    document.getElementById("box").className="box"
    //<div id="box" class="box"></div>
</script>

上面介绍的两种方法有一个弊端,就是我们上述的方法会直接修改掉元素自带的类名,如果只是简单新增或删除类名的话,我们可以采用上述方法,可实际工作应用中,我们会发现上面的方面也非常的有限,显得很蹩脚,如果我们只想要添加或修改新的类名,那么就需要先获取元素原有类名,再通过其他方法进行修改,具体的方法我就不在此赘述了,那么原生的JS是怎么解决这个问题的呢?

classList

classList属性是只读的,不能通过直接赋值来进行修改元素的类名,但是可以通过add()、remove()和toggle()方法对classList进行修改。

具体使用方法如下

//el是对元素的对象引用
//添加一个或多个类名
el.classList.add("class1");
el.classList.add("class1","class2"...);

//删除一个或多个类名
el.classList.remove("class1");
el.classList.remove("class1","class2"...);

//切换元素类名
el.classList.toggle("classname")

//判断元素是否含有某个类名,如果有返回true,否则返回false
el.classList.contains("classname")

相关文章

  • 原生JS更改元素类名

    今天来聊一聊关于原生JS是如何更改元素的类名,习惯了jQuery后,我们感觉更改元素的类名是一件非常容易的事情——...

  • 原生js操作DOM元素的一些使用

    1、原生js给DOM元素添加一个类名 方法一: 使用DOM.setAttribute("class","类名") ...

  • 比较实用的js方法

    1获取元素 原生JS添加类名 删除类名 检查是否含有某个CSS类名 3获取距离页面的距离getBoundingCl...

  • HTML DOM的增删改查总结(查找)

    查找 HTML 元素 1. 原生js 通过 id 查找 HTML 元素 通过标签名找到 HTML 元素 通过类名找...

  • js前端面试题(每日两道3)

    1.类名操作(原生js操作name的增删查) 完成几个 DOM 元素类名操作的工具方法: addClass(dom...

  • Element.classList

    原生js——操作类名(HTML5新增classList) 首先,我们要有一个div 1,给文本添加元素对象 2,给...

  • SVG 创建图片,设置属性,创建元素

    创建的SVG元素使用原生的js写都要加上NS document.createElementNS(文档的声明,元素名...

  • 原生js的一些兼容封装

    获取Dom元素 获取样式表里的样式 添加和移除类名 添加(优化原生防止重复添加) 移除类(优化原生防止重复添加) ...

  • 原生JS封装查找元素节点的方法

    原生JS封装查找父元素节点的方法 原生JS封装查找兄弟元素节点的方法 插入子节点方法 12 2 divsiv...

  • 01-JQuery入口函数

    JQuery入口函数 JS原生入口函数特点原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行原生的JS如...

网友评论

      本文标题:原生JS更改元素类名

      本文链接:https://www.haomeiwen.com/subject/yjjogctx.html