2010-04-21 129 views
15

我正在使用$()。fadeOut()淡出列表中的項目(< li> </li>)。當列表爲空時,我希望隱藏父對象。JQuery - 如何計算選擇器選擇的元素數量?

我打算通過檢查我的觸發事件來淡化列表,如果對象的計數爲0,則隱藏父元素。如果需要,我可以使用fadeOut回調刪除元素。

這個問題點: 如何在ul中選擇li標籤,然後使用jquery得到它們的總數?

回答

27

像這樣:

$('ul > li').length 

更優雅的方式做到這一點是寫

$('ul:empty').fadeOut(); 

如果ul不爲空,則選擇將不匹配任何東西,和代碼將無能爲力。

您可能需要編寫

$('.SomeContainer:has(ul:empty)').fadeOut(); 
+2

+1爲:空 – meo 2010-04-21 20:48:56

+1

謝謝你,是更優雅。 – 2010-04-21 20:55:22

5

只需使用.length對jQuery的集合。

var $elements = $('ul#myUlElement').children('li'); 
alert($elements.length) 
+0

是否有任何理由不使用$('ul#myUlElement> li')'來使用'$('ul#myUlElement')。children('li')'? – 2014-07-22 11:12:53

11

使用。長度

$('ul li').length // gives you back all li's in your ul 
$('ul > li').length // give just the first children li's 

所以爲了隱藏你的父母,你可以使用這種方式:

elements = $('ul > li') 

if (elements.length) { 
    elements.fadeOut() 
}else{ 
    elements.parent().fadeOut() 
}