javascript - :not + :contains, 的 jQuery 组合可以工作吗?

标签 javascript jquery jquery-selectors

<子> (continue from other question)

<div id="main">
    <div class="a">aaaa</div>
     <div class="b"><p>not me</p></div>
     <div class="b">bbbb</div> <!-- select this-->
     <div class="b">bbbb</div> <!-- select this-->
     <div class="c">cccc</div>
</div> ​

我正在尝试选择类为 b 的所有 div没有 <p>not me</p>在它们里面。

我尝试过这个:

$('div.b:not(:has(p:contains(not me)))').css('color', 'red'); 

但是由于某种未知的原因它不起作用,有趣的是,如果我删除 :not()部分:

$('div.b:has(p:contains(not me))').css('color', 'blue');

它确实选择了不需要的 div,所以问题一定出在 :not 上。

Live DEMO

我知道还有其他甚至更好的方法,(我什至在这个问题中给出了一些)但我有兴趣知道为什么 :not + :contains看起来并不在一起。

最佳答案

您可以使用 .not 而不是 :not:

$('div.b').not(':has(p:contains("not me"))').css('color', 'red');

Updated fiddle

关于javascript - :not + :contains, 的 jQuery 组合可以工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11013609/

相关文章:

jquery - 从 JQuery 中的 html 字符串中删除元素

javascript - 选择器 : Id vs. 上下文

javascript - Casperjs 访问框架内的框架

javascript - 使用 javascript 的图像轮播

javascript - 帮助我使用选择器,ID 会动态更改每个页面加载

javascript - 语义 UI 步骤用法

jquery - 在 JSON 对象上使用 jQuery 的 find()

javascript - Yeoman Webapp Generator 创建的项目中的 HTML5 Boilerplate 位于何处?

javascript - 计算/异步数据获取

javascript - 使用具有多个输入字段的 jquery-ui 自动完成