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

如何实现点击切换多个拥有相同class的列表元素的active状态?

解决多个navbar_item的active状态切换问题

嘿,问题出在你用了document.querySelector('.navbar_item')——这个方法只会选中匹配到的第一个元素,所以自然只有第一个navbar_item能响应点击,也只有它的active状态会被切换。要实现所有元素的状态切换,你需要做这几个修改:

  • 用document.querySelectorAll('.navbar_item')替代querySelector,这样能拿到所有匹配的元素集合
  • 在切换状态的函数里,遍历所有navbar_item元素来切换active类
  • 给每个navbar_item都绑定点击事件

下面是修改后的完整代码:

const menu = document.querySelector('#mobile-menu'); 
const menuMenu = document.querySelector('.navbar_menu'); 
// 获取所有navbar_item元素
const menuItems = document.querySelectorAll('.navbar_item'); 

const mobileMenu = () => { 
  menu.classList.toggle('is-active'); 
  menuMenu.classList.toggle('active'); 
  // 遍历所有元素,切换active状态
  menuItems.forEach(item => {
    item.classList.toggle('active');
  });
}; 

menu.addEventListener('click', mobileMenu); 
// 给每个navbar_item都添加点击监听
menuItems.forEach(item => {
  item.addEventListener('click', mobileMenu);
});

这样修改后,不管点击哪个navbar_item或者移动端菜单按钮,所有的navbar_item都会同步切换active状态啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:49:06