在JavaScript中,classList 是一个DOM元素属性,它提供了一组方法来添加、移除和切换元素的类名。classList 属性返回一个 DOMTokenList 集合,表示元素的类名。

这个集合提供了几个非常有用的方法,我们可以方便地对元素的类名进行操作,包括添加、移除、切换类名等。

1,添加类名

add(class1, class2, ...):向元素添加一个或多个类名。如果指定的类名已存在,则不会添加。

element.classList.add('myClass'); // 添加单个类名
element.classList.add('myClass1', 'myClass2'); // 添加多个类名

2,移除类名

remove():从元素中移除一个或多个类名。如果指定的类名不存在,则不会移除。

element.classList.remove('myClass'); // 移除单个类名
element.classList.remove('myClass1', 'myClass2'); // 移除多个类名

3,切换类名

toggle(class, force):切换一个类名的存在和消除。如果类名存在则移除,如果不存在则添加。force参数为true时强制添加类名,为false时强制移除类名。

element.classList.toggle('myClass'); // 切换单个类名
// 如果元素原本有 'myClass',则移除它;如果没有,则添加它 element.classList.toggle('myClass', true); // 强制切换单个类名
element.classList.toggle('myClass', false); // 强制切换单个类名

4,替换类名

replace(oldClass, newClass):替换元素的一个类名为另一个类名。

element.classList.replace('oldClass', 'newClass'); // 替换类名

5,检查是否包含类名

contains():检查元素是否包含指定的类名。如果包含,则返回 true;否则返回 false。

const hasClass = element.classList.contains('myClass'); // 检查是否包含类名

// 或者
if (element.classList.contains('active')) {
// do something
}

6,通过索引获取类名

item():通过索引获取类名。返回指定索引位置的类名,如果索引超出范围,则返回 null。

const className = element.classList.item(0); // 获取第一个类名

7,类名数量

length:返回元素的类名数量。

const classCount = element.classList.length; // 获取类名数量

8,遍历类名列表

forEach()(ES2018引入):遍历类名列表,并为每个类名执行一个函数。

element.classList.forEach((className, index, list) => {
console.log(className); // 遍历并打印每个类名
});

values() / keys() / entries()(ES2018引入):返回新的迭代器对象,允许你使用 for...of 循环遍历类名。

for (const className of element.classList.values()) {
console.log(className); // 使用 for...of 循环打印每个类名
}

这些方法使得在JavaScript中操作元素的类名变得非常简单和直观。你可以根据需要使用它们来动态地修改元素的样式或行为。

JavaScript操作DOM元素的classList的更多相关文章

  1. 【面试必备】javascript操作DOM元素

    前言 时间过的真快,不知不觉就到年底了.问问自己,这一年你对自己的工作满意吗? 评价标准是什么呢?当然是马云的那两条准则了:钱给到了吗?干的爽吗?如果答案都是no,那么,你准备好跳槽了吗? 为了应对年 ...

  2. JS/JQuery操作DOM元素笔记

    原因 自己目前在搭建一个.NET Core的框架,正在构建权限这块的东西,今天设置权限界面,需要使用JavaScript操作DOM元素,记录一下. 页面大概是酱紫的(我使用的AdminLTE和LayU ...

  3. 使用原生 JavaScript 操作 DOM

    原文:https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery/ 微软官方放弃了 IE10-,所以现在可以放心使用 ...

  4. Python javascript操作DOM

    文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.我们最为关心的是,DOM把 ...

  5. 你所不了解的javascript操作DOM的细节知识点(一)

    你所不了解的javascript操作DOM的细节知识点(一) 一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节 ...

  6. web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记

    hi 保持学习数量和质量 1.jQuery操作DOM元素 ----使用attr()方法控制元素的属性 attr()方法的作用是设置或者返回元素的属性,其中attr(属性名)格式是获取元素属性名的值,a ...

  7. 跨frame操作dom元素

    今天,一群友问到跨frame操作dom元素的问题.于是写了个demo,在此发表在博客里面,供其他同道中人参考! 创建child.html内容如下: <!DOCTYPE HTML PUBLIC & ...

  8. JavaScript 操作 DOM 常用 API 总结

    文本整理了javascript操作DOM的一些常用的api,根据其作用整理成为创建,修改,查询等多种类型的api,主要用于复习基础知识,加深对原生js的认识. 基本概念 在讲解操作DOM的api之前, ...

  9. javaScript操作DOM对象(看三遍,敲三遍,写三遍! 不会你找我)!!

    DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API 使用javaScript操作DOM对象通常分为三类:1.DOM CORE        2.HTM ...

  10. 第四章 JavaScript操作DOM对象

    第四章   JavaScript操作DOM对象 一.DOM操作 DOM是Document Object Model的缩写,即文档对象模型,是基于文档编程的一套API接口,1988年,W3C发布了第一级 ...

随机推荐

  1. linux history 想显示历史命令的时间和作者

    vi ~/.profile 增加 HISTTIMEFORMAT="%F %T `whoami` `who am i|awk '{print $1,$5}'|sed 's/ (/@/'|sed ...

  2. Http状态码502常见原因及排错思路

    Http状态码502常见原因及排错思路 502表示Bad Gateway.当Nginx返回502错误时,通常表示Nginx作为代理服务器无法从上游服务器(如:我们的后端服务器地址)获取有效的响应.导致 ...

  3. golang之项目部署

    介绍 Go 语言可以使用内置命令行工具 go build 编译生成可执行文件.自 Go1.5 版本开始实现自举后,交叉编译也很方便,只需使用 GOOS.GOARCH 环境变量指定目标平台和架构. 部署 ...

  4. python之常用开发包

    1.passlib (https://passlib.readthedocs.io/en/stable/) passlib 目前常见的不可逆加密算法有以下几种: 一次MD5(使用率很高) 将密码与一个 ...

  5. 【集成-Jedis】SpringBoot集成Jedis

    将jedis的依赖放进Maven <dependency> <groupId>redis.clients</groupId> <artifactId>j ...

  6. Python OpenCV按照像素点图片切割

    图像分割是从图像处理到图像分析的关键步骤,在目标检测.特征提取.图像识别等领域具有广泛应用.OpenCV是一个强大的计算机视觉库,提供了多种图像分割方法.本文将详细介绍如何使用Python和OpenC ...

  7. Gitlab误删用户导致项目丢失莫慌

    Gitlab让小朋友不小心把离职员工的账号给删了,可是离职员工有好几个项目都是他是owner,造成Gitlab上项目全部丢失. 遇到这种情况,莫慌. 一般,本地都有完整的Git备份,离职员工走了,肯定 ...

  8. openEuler欧拉配置nginx Keepalived主从和双主

    ​虚拟:172.62.17.110 Nginx主:172.62.17.111 Nginx从:172.62.17.112 一.系统优化 关闭防火墙(两台) systemctl stop firewall ...

  9. Nginx转发解析长域名多路径域名为一级域名

    ​Nginx解析短域名,例如:访问 http://192.168.1.23 可直接跳转到 http://192.168.1.23/webroot/decision server { listen 90 ...

  10. undefined method `license' when mac brew install

    https://github.com/Homebrew/discussions/discussions/297 brew update-reset brew config brew doctor