0

(从其他问题继续)

<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

现场演示

我知道还有其他甚至更好的方法,(我什至在那个问题中给出了一些方法)但我很想知道为什么:not+:contains似乎不在一起。

4

3 回答 3

3

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

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

更新的小提琴

于 2012-06-13T11:14:28.937 回答
1

工作示例:not + :contains

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

将更改所有不包含“不是我”的 div.b 的颜色。

于 2012-06-13T11:25:23.063 回答
0

我认为这与:has

尝试这个:

$('div.b:not(:contains(not me))').css('color', 'red');
于 2012-06-13T11:17:04.963 回答