2009-10-12 88 views
1

我有点困惑。我需要根据他们的孩子是否拥有某个班级来选择div标签。这是DOM结构的代码示例:jQuery选择器问题

<div id="container"> 

    <div id="one"> 
     <p>This is item one</p> 
     <p class="special">This is a description</p> 
    </div> 

    <div id="two"> 
     <p>This is item one</p> 
     <p>This is a description</p> 
    </div> 

    <div id="three"> 
     <p>This is item one</p> 
     <p class="special">This is a description</p> 
    </div> 

</div> 

所以,我要选择的是没有带班的“特殊”,并在上面的例子中,一个段落div标签将是第二个div标签(#two)。

任何想法?

回答

14

您可以使用:not:hasselectors

$('div:not(:has(p.special))') 
+0

+1殴打我给它。 – geowa4 2009-10-12 12:37:52

+0

不错,简洁 - 让jQuery为你做点修改; p – Rowan 2009-10-12 12:41:33

+0

太棒了,这个工作就像一个魅力。谢谢! – Indyber 2009-10-12 13:01:30

0

试试这个:

$("div").filter(function() { 
    return $(this).children("p.special").length == 0; 
})