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

如何仅选择父列表项的sub-menu,而非子列表项的sub-menu?

只选择顶层父列表项中的.sub-menu元素

要精准选中直接属于最外层#top-menu下一级列表项的.sub-menu,排除嵌套在更深层级里的同名元素,你可以利用CSS的**直接子选择器(>)**来严格限定选择层级:

#top-menu > li > ul.sub-menu {
  /* 在这里编写你的样式规则 */
}

选择器生效逻辑拆解

  • #top-menu > li:仅匹配#top-menu元素的直接子级<li>(也就是最外层的列表项),不会选中嵌套在内部的子列表项
  • > ul.sub-menu:进一步只匹配上述直接子级<li>的直接子级.sub-menu,完美跳过了那些嵌套在深层<li>里的同名元素

补充:修正HTML结构后的适配方案

你的示例HTML里直接在<div id="top-menu">下放置<li>不符合规范(li必须嵌套在ul/ol内),如果实际结构是#top-menu内部有一层最外层<ul>,只需稍微调整选择器:

#top-menu > ul > li > ul.sub-menu {
  /* 样式规则 */
}

JavaScript选择方案

如果是用JS获取这些元素,同样可以套用层级逻辑:

const topLevelSubMenus = document.querySelectorAll('#top-menu > li > ul.sub-menu');

这样就能精准拿到你需要的顶层.sub-menu元素啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:04:58