原生JS实现JQuery的addClass和removeClass

  • 今天在做按钮时,需要给按钮做一个按下去的效果,想着用增加一个class替换背景颜色的方法去做,但是才发现不知道在原生JS中,如何用类似的方法像JQuery里面一样,直接用addClass和removeClass直接操作DOM的类。

  • 百度了一下才发现原来用classList属性可以很方便地对class进行操作

例子:

document.getElementById("vipemail").classList.add("btn-active");

这段的含义就是将“btn-active”这个类添加到ID为vipemail的标签中
同理

document.getElementById("vipemail").classList.remove("btn-active");

意思就是去掉ID为vipemail的标签中的“btn-active”类
当然,classList不仅仅只有这两种用法,下面顺带介绍一下classList的常用方法

classList

  • 语法

  • element.classList
  • 属性

  • length(作用:显示元素中有多少个类名)
    例如:
<div id="myDIV" class="a b c"></div>

document.getElementById("myDIV").classList.length;

输出的结果是3。

  • 方法

  • classList(作用:输出元素的类名列表)
    例子:
<div id="myDIV" class="a b c"></div>
var x = document.getElementById("myDIV").classList;

x的输出结果为:a b c

  • add(class1,class2)(作用:在元素中添加一个或多个类名)
    注意:如果指定的类名已经存在,则不会添加
    例子:
document.getElementById("myDIV").classList.add("btn-active");
  • contains(class)(作用:判断指定的类名是否存在,返回布尔值)
    例子:
<div id = "myDIV" class = "btn-active">

document.getElementById("myDIV").classList.contains("btn-active")

返回的结果为true

document.getElementById("myDIV").classList.contains("btn")

返回的结果为false

  • item(index)(作用:返回类名在元素中的索引值。索引值从0开始)
    例子:
<div id="myDIV" class="a b c"></div>
document.getElementById("myDIV").classList.item(0)

返回的结果是a

  • remove(作用:移除元素中一个或多个类名)
    注意:若移除不存在的类名,不会报错
    例子:
document.getElementById("myDIV").classList.remove("btn-active");

最后附上classList的参考教程
classList | 菜鸟教程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //------------------------- 第一章 认识JQuery ----------------...
    米塔塔阅读 763评论 0 9
  • 题目1: dom对象的innerText和innerHTML有什么区别? innerText返回的是元素内包含的文...
    Feiyu_有猫病阅读 395评论 0 0
  • 基本介绍 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它给文档(结构树)提供了一个结构化的表述并且...
    草鞋弟阅读 486评论 0 0
  • 我们首先要明白,我们给页面添加效果用到的js到底是什么?js其实包含三部分:dom 文档对象模型 bom 浏览...
    一直以来都很好阅读 822评论 0 0
  • 作家廖一梅说过一句话,“在我们的一生中,遇到爱、遇到性,都不稀罕,稀罕的是遇到了解。” 我们一生寻找真爱,不过就是...
    菬你这么说阅读 349评论 1 5