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

无法用querySelectorAll精准获取Menu8?求定位及Class修改方案

问题分析与解决方案

你的代码问题在于document.querySelectorAll('leds-navigation-list > ul')会选中所有leds-navigation-list元素下的直接ul子节点,自然会获取到全部菜单,无法精准定位到"Menu 8"对应的ul。

精准定位的思路

从HTML结构来看,"Menu 8"是一级导航里的文本,对应的二级菜单ul是该导航项的子元素。可以通过以下步骤定位:

  • 先找到文本为"Menu 8"的导航链接(a标签)
  • 向上遍历找到其所在的父容器(li.le-c-nav-item)
  • 在该父容器内找到目标ul元素

修改后的代码示例

var btn = document.querySelector('button');

btn.addEventListener('click',()=>{
  // 1. 找到文本为"Menu 8"的导航链接
  const menu8Link = Array.from(document.querySelectorAll('le-c-nav-list > li > a'))
    .find(el => el.textContent.trim() === 'Menu 8');
  
  if(menu8Link){
    // 2. 找到对应的父li容器
    const parentLi = menu8Link.closest('li.le-c-nav-item');
    // 3. 在父容器内找到目标ul
    const targetUl = parentLi.querySelector('ul.le-c-nav-list-sec');
    
    // 4. 添加hide类(用classList.add比直接替换class更安全,避免覆盖原有类)
    targetUl.classList.add('hide');
    console.log("已为Menu8的菜单添加hide类");
  }
})

为什么用classList.add而不是直接替换class?

直接修改className会完全覆盖原有类名,容易导致样式丢失。classList.add只会追加新类,保留原有类的同时完成需求,更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:51:53