views:

115

answers:

3

I am using $().fadeOut() to fade items out in a list ( < li> < /li>). When the list is empty I wish to hide a parent object.

I plan on doing this by checking in my trigger event that fades the list if the count of the objects is 0 then hide the parent element. I can use the fadeOut callback to remove the elements if necessary.

The to the point question: How do I select li tags inside a ul and then get the total count of them using jquery?

+6  A: 

Like this:

$('ul > li').length

A more elegant way to do it would be to write

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

If the ul is not empty, the selector won't match anything, and the code will do nothing.

You may need to write

$('.SomeContainer:has(ul:empty)').fadeOut();
SLaks
+1 for the :empty
meo
Thank you that is much more elegant.
Josh
+4  A: 

Simply use .length against the jQuery collection.

var $elements = $('ul#myUlElement').children('li');
alert($elements.length)
patrick dw
+4  A: 

use .length

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

so in order to hide you parent you can use it this way:

elements = $('ul > li')

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