JavaScript 词条目录
前端Wiki/JavaScript/进阶/DOM 操作

classList 类操作

切换类名是 JS 控制「状态外观」最推荐的方式:CSS 里用类写好样式(正常态、激活态、隐藏态),JS 只负责加减类,完全不用碰 style。这符合「结构与行为分离」的原则,样式也更好维护。

classList 提供四个方法:add 添加、remove 移除、toggle 切换(有则删、无则加,做开关最方便)、contains 判断是否包含。相比直接读写 className 字符串,classList 不会误伤其他类名。

典型应用场景:导航高亮(给当前项 add active)、下拉菜单开合(toggle open)、表单校验提示(错误时 add error)、暗色模式切换(给 body toggle dark)。

本节要点classList 的 add/remove/toggle/contains 四件套;toggle 天然适合做开关;样式写在 CSS 类里,JS 只切类名。
HTML
<style>
  .box { padding: 10px; border: 1px solid #888; transition: all .3s; }
  .active { background: #fff3cd; border-color: #f0c33c; }
  .big { font-size: 20px; }
</style>
<div id="box" class="box">看我样式变化</div>
<script>
  const box = document.getElementById('box');

  box.classList.add('active');     // 添加类
  console.log('有 active 吗:', box.classList.contains('active'));

  box.classList.add('big');
  box.classList.remove('big');     // 移除类

  box.classList.toggle('big');     // 切换:没有就加,有就删
  console.log('最终类名:', box.className);

  // 常见实战:点击切换开关状态
  box.addEventListener('click', () => box.classList.toggle('active'));
</script>