jquery选择器,选择不包含指定标签的元素

我有这样一个<ul>, 对应一个sidebar的菜单

<ul class="page-sidebar-menu">
<li>
    <a href="javascript:;">
        <i class="icon-pointer"></i>
    </a>
    <ul class="sub-menu">
        <li>
            <a href="javascript:;">Google Maps</a>
        </li>
        <li>
            <a href="javascript:;">Vector Maps</a>
        </li>
    </ul>
</li>
</ul>

外面那层<li>里面的<a>点击只是展开下拉菜单,现在我想监听最里面的<li>中的<a>的点击事件,
我的思路是外面的的<a>里面包含<i>标签,想用jquery选择器来排除,我想到的是$('page-sidebar-menu > li > a, a:not(:has(i))').on('click', ...);,结果调试发现点击外面的<a>也会触发,我这种写法有什么问题?或者正确的应该怎么写?

阅读 5.6k
2 个回答

为啥不直接监听 .sub-menu 下的 a

为何不直接这么写呢?

$(".sub-menu").find("a")

这样不就可以找到最里面的li下面的a了,为什么要大费周章呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏