在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. MNN框架在Win10上的部署,支持OpenGL和Vulkan

    上篇记录了之前在win10上部署的流程,不过在camke的时候没有选择支持OpenGL和Vulkan.这里重新按照官方的语雀文档重新进行支持OpenGL和Vulkan的编译,简单做个记录.如果有其他的 ...

  2. 2024-11-13:求出所有子序列的能量和。用go语言,给定一个整数数组nums和一个正整数k, 定义一个子序列的能量为子序列中任意两个元素之间的差值绝对值的最小值。 找出nums中长度为k的所有子

    2024-11-13:求出所有子序列的能量和.用go语言,给定一个整数数组nums和一个正整数k, 定义一个子序列的能量为子序列中任意两个元素之间的差值绝对值的最小值. 找出nums中长度为k的所有子 ...

  3. csv导出特殊字符问题

    昨天听到隔壁组讨论说按照逗号分割implode导出到csv文件,传递文件数据给别人的时候,别人按照都好explode分割回来多一个单元格,他们调查了一下发现是内容里面就是有逗号导致的,居然就这么卡住了 ...

  4. python下的多线程与多进程

    多进程: 进程我们可以理解为是一个可以独立运行的程序单位,比如打开一个浏览器,这就开启了一个浏览器进程:打开一个文本编辑器,这就开启了一个文本编辑器进程.但一个进程中是可以同时处理很多事情的,比如在浏 ...

  5. DevEco Studio 实战第一节:字符串拼接与组件构建

    DevEco Studio 实战第一节:字符串拼接与组件构建 引言 在现代软件开发中,TypeScript 提供了强类型的优势,而 DevEco Studio 作为华为推出的开发集成环境,提供了便捷的 ...

  6. OSG开发笔记(三十七):OSG基于windows平台msvc2017x64编译器官方稳定版本OSG3.4.1搭建环境并移植Demo

    前言   自行编译的osg版本插件比较多,如果对版本没有特定要求,但是对环境编译器有特定要求,可以反向融合编译器符合要求的osg版本.   OSG下载过程   osg官网:http://www.osg ...

  7. Gitlab的备份与恢复,异机转移

    ​注意:异机转移的时候,gitlab的版本必须一致. 一.备份GitLab数据 停止GitLab服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq 创 ...

  8. 12C++循环结构-for循环(2)——教学

    一.循环变量为字符型 (第32课 26个兄弟姐妹)参考视频1 试编一程序,按字典顺序输出26个字母. 流程图: 思考:先顺序输出26个小写英文字母,再逆序输出26个大写英文字母. 循环可以是递增型循环 ...

  9. 再次探讨 WinForms 多线程开发

    再次探讨 WinForms 多线程开发 WinForms 已经开源,您现在可以在 GitHub 上查看 WinForm 源代码. 正好有人又讨论到在 WinFroms 环境下的多线程开发,这里就再整理 ...

  10. zz 云原生时代,Java的危与机

    https://icyfenix.cn/tricks/2020/java-crisis/qcon.html 另一方面,在微服务的背景下,提倡服务围绕业务能力而非技术来构建应用,不再追求实现上的一致,一 ...