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

如何使用JavaScript将指定类名的所有元素的类名替换为新类名

实现方法

你可以通过以下两种常用方案实现批量修改指定类名元素的类名,优先推荐第一种,可避免动态集合的坑:

方案1:使用querySelectorAll(推荐)

querySelectorAll返回静态的NodeList集合,不会因为元素类名修改发生动态变化,遍历更稳定:

// 匹配所有类名为MyClass的元素
const targetEls = document.querySelectorAll('.MyClass');

// 遍历修改类名
targetEls.forEach(el => {
  // 方式1:直接覆盖所有类名(仅当元素只有MyClass一个类时使用)
  el.className = 'notMyClass';

  // 方式2:仅替换指定类名,保留元素其他类(更通用,推荐)
  // el.classList.replace('MyClass', 'notMyClass');
});

方案2:使用getElementsByClassName

getElementsByClassName返回动态的HTMLCollection,元素类名修改后会自动从集合中移除,直接正序遍历会出现元素遗漏,需要先转成静态数组再操作:

// 转成数组后再遍历,避免动态集合的问题
const targetEls = Array.from(document.getElementsByClassName('MyClass'));

targetEls.forEach(el => {
  el.classList.replace('MyClass', 'notMyClass');
});

注意事项

  • 如果元素除了MyClass外还有其他需要保留的类,不要直接给className赋值,必须用classList.replace方法操作
  • 动态集合(如getElementsByClassName、getElementsByTagName的返回值)不建议直接遍历做修改类名、删除元素这类会影响集合长度的操作,转成数组或者用静态集合querySelectorAll更稳妥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:15:02