2010-07-01 62 views

Respuesta

58

Hay que contar los elementos Li no los elementos UL:

if ($('#menu ul li').length > 1) { 

Si necesita cada elemento UL contiene al menos dos elementos LI, utilizar la función de filtro:

$('#menu ul').filter(function(){ return $(this).children("li").length > 1 }) 

También puede usar eso en su condición:

if ($('#menu ul').filter(function(){ return $(this).children("li").length > 1 }).length) { 
0
alert("Size: " + $("li").size()); 

o

alert("Size: " + $("li").length); 

Usted puede encontrar algunos ejemplos del método .size() here.

+3

** Sólo para mayor referencia ... ** El '' .size método está en desuso a partir del() jQuery 1.8. Use la propiedad '.length' en su lugar. [deprecated-1.8] (http://api.jquery.com/category/deprecated/deprecated-1.8/) – gmo

17

La sintaxis correcta es

$('ul#menu li').length 
7
alert("Size: " + $("li").size()); 

alert("Size: " + $("li").length); 

Tanto .size() y .length número de devolución del artículo. pero el método size() está en desuso (JQ 1.8). La propiedad .length puede usarse para en lugar de size().

también se puede utilizar

alert($("ul").children().length); 
5

Working jsFiddle

Utilice .size() función en lugar de .length y también especificar la etiqueta li en el selector.

Cambia el código como.

if ($('#menu ul li').size() > 1) { 
4

Uso $('ul#menu').children('li').length

.size() en lugar de .length también funcionará