2011-09-14 72 views
0

假設以下HTML如何找到所有不包含任何lis的uls? IE:在這種情況下ul3和ul4?包含NO LI的jQuery選擇器UL

我可以看到,jQuery有「有」選擇器,但我不能看到它的逆?我也不瞭解我如何結合,而不是完成我所需要的。

<div id="div1"> 
    <ul id='ul1'> 
     <li> 
     </li> 
    </ul> 

    <ul id='ul2'> 
     <li> 
     </li> 
    </ul> 

    <ul id='ul3'> 
    </ul> 

    <ul id='ul4'> 
    </ul> 
</div> 
+0

爲什麼你有沒有項目的清單? – v42

回答

2

我也不明白,我怎麼可以結合已經不完成我需要什麼。

據我所知,這是簡單的:

$('ul:not(:has(li))') 
+0

這對我來說測試OK ... http://jsfiddle.net/mS2tC/我的行不通。 –

+0

:)我在jQuery文檔頁面上測試了它:沒有。但是,**每個**'ul'在該頁面上都有一個'li',所以當然,我也嘗試過使用'p'和'strong'。你的版本的問題是'contains'在這裏不合適,'has'是; 'contains'在'ul'的文本後代中查找文本字符串,而不是子標籤。 –

+0

這似乎對我的問題很好。謝謝。 –

1

使用:empty選擇(如果你確定沒有文本節點後代太)。

$('ul:empty'); 

否則,您可以使用...

$('ul').filter(function() { return ! $(this).find('li').length; });