美文网首页javascript收藏JavaScript技术
使用 JavaScript 从多个元素中添加和删除 CSS 类

使用 JavaScript 从多个元素中添加和删除 CSS 类

作者: lio_zero | 来源:发表于2022-03-25 23:19 被阅读0次

假设我们有以下结构:

<p class="color-purple">Hello</p>
<p>there!</p>
<p class="color-purple">How</p>
<p>are</p>
<p class="color-purple">you?</p>

样式如下:

.color-plum {
  color: plum;
}

.color-purple {
  color: rebeccapurple;
}

我们想要在多个元素上添加或删除某个类,下面我们来看看如何使用 JavaScript 从多个元素中添加和删除 CSS 类。

获取所有元素

想要获取所有的元素,可以使用 document.querySelectorAll() 方法。它可以传入任何有效的选择器,并返回一个 NodeList 匹配元素。

let p = document.querySelectorAll('p')
let purple = document.querySelectorAll('p.color-purple')

添加和删除类

您可以使用 Element.classList API 从元素中添加和删除类。

它提供了一些可用于添加、删除、切换和检查元素上的类的方法。我们可以使用 add() 方法添加类,以及 remove() 方法 删除类。

此方法仅适用于单个元素,而不适用于集合。

let elem = document.querySelector('p.color-purple')

elem.classList.add('color-blue')
elem.classList.remove('color-purple')

如果要添加多个类,可以传入多个参数:

elem.classList.add('color-blue', 'text-large')

循环遍历每个元素

要从多个元素中添加和删除类,我们需要循环遍历从 document.querySelectorAll() 方法返回的 NodeList 中的每个类,并使用 Element.classList API。

有很多方法可以做到这一点,但最简单的两种方法是 NodeList.forEach() 方法和 for...of 循环。

  • for...of 循环
for (let elem of p) {
  elem.classList.add('color-blue')
}

for (let elem of purple) {
  elem.classList.remove('color-purple')
}
  • NodeList.forEach() 方法
p.forEach(function (elem) {
  elem.classList.add('color-blue')
});

purple.forEach(function (elem) {
  elem.classList.remove('color-purple')
})

NodeList.forEach() 方法也可以直接在 document.querySelectorAll() 方法返回的 NodeList 上调用,而无需将其保存到变量中。这有时可能很有用。

document.querySelectorAll('p').forEach(function (elem) {
  elem.classList.add('color-blue')
})

辅助函数

创建一个辅助函数,帮助我们减少一些重复的操作:

function addClass(elems, ...classes) {
  // 添加 .color-blue 类
  for (let elem of elems) {
    elem.classList.add(...classes)
  }
}

function removeClass(elems, ...classes) {
  for (let elem of elems) {
    elem.classList.remove(...classes)
  }
}

更多资料

相关文章

  • 使用 JavaScript 从多个元素中添加和删除 CSS 类

    假设我们有以下结构: 样式如下: 我们想要在多个元素上添加或删除某个类,下面我们来看看如何使用 JavaScrip...

  • jQuery类操作

    添加类addClass():可对元素添加一个或多个类 删除类addClass():可删除元素的一个类或多个类或所有...

  • jQuery添加/删除CSS类

    1、 addClass() - 向被选元素添加一个或多个类2、 removeClass() - 从被选元素删除一个...

  • 1.css总结

    1.css总结 多个元素样式同时改变时,可以给父级添加一个不存在的新类,改变新类的增加与删除

  • Python 之列表

    列表简介 修改列表元素 在列表中添加元素 在列表中插入元素 从列表中删除元素 使用方法pop() 删除元素 弹出列...

  • 使用 JavaScript 操作 DOM

    DOM 操作是使用 JavaScript 添加、修改和删除 HTML 元素。 在本章中,我假设您已经在一个文件夹中...

  • 【JS与CSS文件导入与执行冲突】

    在制作页面的时候,我们有的时候使用CSS给某一元素添加了样式,有通过JavaScript给该元素添加了CSS样式,...

  • jquery的class样式相关操作方法总结

    目录 JavaScript原生类样式操作获取类名添加类名替换类名删除类名 jQuery类样式操作使用attr获取和...

  • 如何使用JavaScript删除CSS属性?

    如何使用JavaScript删除CSS属性?下面本篇就来给大家介绍一下使用JavaScript删除CSS属性的方法...

  • 比较实用的js方法

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

网友评论

    本文标题:使用 JavaScript 从多个元素中添加和删除 CSS 类

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