javascript - Jquery 不是选择器不适用于子元素?

标签 javascript jquery

$(document).on('click', '#ul li:not(.info)', function(){

    alert();
});

我的html是这样的

<ul id="ul">
<li></li>
<li><a href="#" class="info"></li>
</ul>

为什么当我点击.info时它仍然触发?

最佳答案

因为你的 HTML 定义了 .info <a> 上的类(class)后代而不是 <li>本身,而您的选择器表示 :not(.info)这意味着<li>没有 .info类。

试试这个:

$(document).on('click', '#ul li:not(:has(.info))', function(){
    alert();
});

或者,您可以简单地移动您的 .info类到 <li>本身:

<li class="info"><a href="#"></li>

请参阅 jQuery 的 hasFiddle

关于javascript - Jquery 不是选择器不适用于子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34129226/

相关文章:

javascript - <a href> 可以接受多个参数吗?

javascript - 单击 block 时如何不计算子 block (示例 .child 跨度)?

javascript - 使用 Google 登录 使用移动设备/其他笔记本电脑从本地主机登录进行测试

javascript - 我可以自定义哪个属性控制事件的开始吗?

javascript - 选中时更改复选框图像

jquery - 如何使用 AngularJS NgRoute 启动 MixItUp

jquery - gif 动画在 Firefox 4.0 及以上版本中卡住

javascript - 通过指定打印机名称打印到打印机 - Javascript

javascript - 在@Output事件Angular 6中获取事件对象代替值

javascript - 如何在 Google Chrome 中的新标签页中打开页面中的链接?