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

如何匹配含some_class且父级无unique_dropdown的dropdown-item元素

解决方案

正确写法1:直接通过层级选择器定位

$('.dropdown:not(.unique_dropdown) a.dropdown-item.some_class')

这个写法直接筛选出没有.unique_dropdown类的.dropdown容器,再在其内部匹配带有.some_class的.dropdown-item链接,逻辑清晰且高效。

正确写法2:使用.not()结合父元素判断

如果习惯用.not()的写法,可以这样写:

$('a.dropdown-item.some_class').not(function() {
  return $(this).closest('.dropdown').hasClass('unique_dropdown');
})

通过回调函数检查每个目标元素的最近.dropdown父容器是否带有.unique_dropdown类,把符合条件的元素排除掉。


为什么之前的写法无效?

你之前尝试的两种写法都用错了.not()的参数格式:

  • .not()的第二个参数不是上下文,它的正确用法是要么传选择器字符串,要么传DOM元素/集合,要么传回调函数。
  • $(this)在你之前的写法里没有正确指向当前遍历的元素,因为不是在回调函数中调用的。

匹配结果验证

对应你提供的HTML结构:

  • 第一个.dropdown.unique_dropdown里的.some_class元素会被排除
  • 第二个.dropdown里的1个.some_class元素会被匹配
  • 第三个.dropdown里的3个.some_class元素会被全部匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:50:46