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

如何选中所有元素移除指定CSS类?JS点击事件无法移除目标类怎么解决

问题修复说明

存在的问题

  • 选择器错误:document.querySelectorAll('menu-category')是查找自定义标签<menu-category>,你需要匹配的是类名为menu-category的元素,需补充类选择器前缀.
  • 循环条件错误:querySelectorAll返回的是NodeList对象,需取.length属性获取元素总数,原循环条件i < allMenuEl永远不成立,移除类的逻辑根本不会执行
  • 行内事件语法错误:onclick="GetData(, 13)"第一个参数缺省触发语法报错,会导致整个函数不执行
  • HTML结构不完整:末尾div缺少闭合标签

修复后代码

JS部分:

// 不需要allMenuItems参数可以直接删除形参
function GetData(theCategoryId) {
    // 移除所有元素的选中类
    allMenuEl = document.querySelectorAll('.menu-category');
    for (var i = 0; i < allMenuEl.length; i++) {
        allMenuEl[i].classList.remove("menu-category-hover");
    }

    // 给当前点击元素添加选中类
    var hoverEl = document.getElementById("menu_cat_" + theCategoryId);
    hoverEl.classList.add("menu-category-hover");
}

HTML部分:

<div class="menu-category menu-category-hover" onclick="GetData(13)" id="menu_cat_13">
     <img src="/images/85783_burger.png" class="menu-home-image-img">
     <p class="menu-home-name">Burgers</p>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:15:01