Foros del Web » Programando para Internet » Jquery »

Contar numeros de li

Estas en el tema de Contar numeros de li en el foro de Jquery en Foros del Web. Wenas Necesito contar los elementos "li" que posee un "ul" pero el problema esta en que tambien me cuenta los elementos hijos de ul li ...
  #1 (permalink)  
Antiguo 12/11/2012, 05:54
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Contar numeros de li

Wenas

Necesito contar los elementos "li" que posee un "ul" pero el problema esta en que tambien me cuenta los elementos hijos de ul li por ejemplo tengo:

Código HTML:
Ver original
  1. <ul>
  2.     <li></li>
  3. </ul>
  4. <!-- Cuenta 1 está bien -->
  5.  
  6. <ul>
  7.     <li>
  8.         <ul>
  9.             <li></li>
  10.         </ul>
  11.     </li>
  12. </ul>
  13. <!-- Cuenta 2 -->

Yo necesito contar solo los elementos LI padre del menú

el código que uso es:

Código Javascript:
Ver original
  1. jQuery.noConflict();
  2. jQuery(document).ready(function(){
  3.     var cuantosLi = 0;
  4.     jQuery("ul.jt-menu li").each(function(index) {
  5.         cuantosLi = cuantosLi+1;
  6.     });
  7.     alert(cuantosLi);
  8. })

jQuery("ul.jt-menu li").size() - tambien devuelve 2.
  #2 (permalink)  
Antiguo 12/11/2012, 07:42
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contar numeros de li

Proba asi:

Código Javascript:
Ver original
  1. $("body ul:first").children("li").size();

De este modo selecciona la primera lista del documento y devuelve la cantidad de hijos que tiene, si tuvieses varias listas te recomendaria que le coloques una clase a las listas principales asi haces las selecciones de ese modo.

Salu2
  #3 (permalink)  
Antiguo 12/11/2012, 07:45
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Contar numeros de li

Muchas gracias djaevi, me funciono perfecto
  #4 (permalink)  
Antiguo 12/11/2012, 10:40
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Contar numeros de li

Ése solo funciona si la lista donde quieres contar elementos, es la primera lista del body. No me gusta demasiado. Mejor busca la lista por su id (así la coje siempre, esté donde esté), y cuenta sus li del primer nivel así:


Código Javascript:
Ver original
  1. jQuery.noConflict();
  2. jQuery(document).ready(function(){
  3.     var cuantosLi = 0;
  4.         jQuery("ul.jt-menu > li").each(function(index) {
  5.          cuantosLi = cuantosLi+1;
  6.     });
  7.     alert(cuantosLi);
  8. })

Sólo he añadido este simbolito en la linea 4 : ">".
  #5 (permalink)  
Antiguo 12/11/2012, 10:49
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contar numeros de li

Tal como le aclare podria agregarle una clase a su lista por si tiene varias el codigo funcione igualmente, yo personalmente si la lista fuese una sola hubiese optado por ponerle un id tambien pero como no se bien como es el codigo completo o la funcion de su pagina le sugeri eso que a priori es la respuesta a lo que el pidio con el codigo html que el tiene.

Saludos!!
  #6 (permalink)  
Antiguo 12/11/2012, 11:12
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Contar numeros de li

Les comento como lo deje utilizando la función que arreglo djaevi

Código Javascript:
Ver original
  1. jQuery.noConflict();
  2. jQuery(document).ready(function(){
  3.     var sumP = 0;
  4.     var cuantosLi = 0;
  5.     jQuery("ul.jt-menu:first").children("li").each(function(index) {
  6.         sumP = parseInt(jQuery(this).width());     
  7.         cuantosLi = cuantosLi+1;
  8.     });
  9. })

asi quedó funcionando barbaro

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:25.