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

CSS伪选择器可包含任意数量元素吗?如何高效匹配特定嵌套ul

解决方案:匹配路径中无其他ul的ul.this后代ul

核心选择器

直接使用以下单个选择器即可覆盖所有符合要求的场景:

ul.this ul:not(ul ul)

选择器解析

  • ul.this ul:选中所有属于ul.this后代的ul元素,不管中间间隔多少层非ul元素。
  • :not(ul ul):排除那些本身是其他ul元素后代的ul,这就确保了从ul.this到目标ul的路径中,不会出现任何额外的ul节点,完全匹配你设定的规则。

匹配验证

对应你给出的DOM片段:

  • 匹配项:ul.this>li>ul、ul.this>li>div>ul、ul.this>li>div>menu>div>nav>div>div>div>div>ul等所有路径无其他ul的后代ul,都会被选中。
  • 不匹配项:ul.this>li>ul>li>div>ul、ul.this>li>div>ul>li>div>ul这类路径中包含其他ul的元素,会被 :not(ul ul)排除,不会被选中。

补充说明

CSS选择器没有类似正则表达式的重复量词(如*、+),但通过后代选择器 + 否定伪类的组合,就能实现“允许任意数量非ul元素间隔”的匹配需求,无需手动编写多层重复的:not(ul)选择器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:55:12