You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击元素时为所有同级元素添加同一class?

实现点击元素时为所有同级元素添加select类

当前你的代码点击.img_items元素时仅会给当前点击的单个元素添加select类,而尝试直接调用images.classList.add("select")无效,是因为document.querySelectorAll()返回的是NodeList集合,不是单个DOM元素,集合本身没有classList属性,必须遍历集合内的每个元素才能操作类名。

要实现点击任一元素时为所有同级元素(也就是所有.img_items元素)添加select类,只需要在点击事件回调里遍历整个images集合,给每个元素都添加类即可:

const images = document.querySelectorAll(".img_items");

images.forEach((image) => {
  image.addEventListener("click", () => {
    // 遍历所有.img_items元素,给每个都加上select类
    images.forEach(item => {
      item.classList.add("select");
    });
  });
});

如果需要先清除之前的select类再统一添加(比如切换状态场景),可以先调用classList.remove("select"):

const images = document.querySelectorAll(".img_items");

images.forEach((image) => {
  image.addEventListener("click", () => {
    // 先移除所有元素的select类(可选,根据需求调整)
    images.forEach(item => {
      item.classList.remove("select");
    });
    // 再给所有元素添加select类
    images.forEach(item => {
      item.classList.add("select");
    });
  });
});

你的HTML和CSS代码可保持不变:

<div class="img_container">
  <div class="img_items ">1</div>
  <div class="img_items ">2</div>
  <div class="img_items">3</div>
  <div class="img_items">4</div>
</div>
.img_items::after{
  content: ' ' attr(class)
}

内容的提问来源于stack exchange,提问作者Heong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:25:01