Foros del Web » Programando para Internet » Javascript »

Contar elementos

Estas en el tema de Contar elementos en el foro de Javascript en Foros del Web. Hola, foreros! Tengo un lista con muchas <li>, un numero varible. ¿Como puedo saber con javascript cuantos <li> tiene un lista? Código HTML: <ol> <li> ...
  #1 (permalink)  
Antiguo 01/10/2008, 18:43
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Contar elementos

Hola, foreros!

Tengo un lista con muchas <li>, un numero varible. ¿Como puedo saber con javascript cuantos <li> tiene un lista?

Código HTML:
<ol>
	<li>COSA</li>
	<li>COSA</li>
	<li>COSA</li>
	<li>COSA</li>
	<li>COSA</li>
</ol> 
¿Se puede saber?
  #2 (permalink)  
Antiguo 01/10/2008, 23:41
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: Contar elementos

Si se puede, agregale un id a tu ol digamos lista y haces tu codigo algo asi:

vat total = document.getElementById('lista').getElementsByTagN ame('li').length

el valor de total es el numero de lis que tienes.
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 03/10/2008, 13:56
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Contar elementos

Hola, Buzu...

Esta fenomenal el codigo que me has dado... jeje... y por ultimo como puedo seleccionar cada valor de la lista con DOM si no tienen id's cada elemento de la lista. Es decir, solo tiene id la lista entera, el <ol>;

¿Se puede?, es decir, por ejemplo si tengo una lista con un numero indefinido de li's y quiero seleccionar el div en la posicion 3 como puedo seleccionarlo?
  #4 (permalink)  
Antiguo 03/10/2008, 14:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: Contar elementos

getElementsByTagName es un array, solo tienes que recorrerlo para obtener la referencia a cada elemento de la lista.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/10/2008, 16:13
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: Contar elementos

De hecho, no estoy seguro, pero creo que no es un array, simula un array pero no lo es. Como digo, no estoy muy seguro. Tendría que hacer unas pruebas...

Para solucionar el problema es necesario lo siguiente:

1 obtener todos los li y guarda el valor en una variable
2 Accesa al elemento que quieras de la misma manera en la que accedes a los valores de un array.

Dependiendo de que tan seguido usas tu código puede que no necesites guardar el valor devuelto por getElementsByTagName en un array, pero yo lo haría de todos modos.
__________________
twitter: @imbuzu
  #6 (permalink)  
Antiguo 03/10/2008, 16:19
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: Contar elementos

ok ok, getElementsByTagName no es un array, es un método. Mas especificamente un metodo del DOM, que a su ves es una API. Se podría decir que el valor devuelto por getElementsByTagName es un array, pero como bien apunto en mi anterior mensaje, creo que no lo es.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 03/10/2008, 20:46
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Contar elementos

Hola de nuevo...

Ok!... intentanre hacerlo... jeje...

Muchisimas gracias por la ayuda!
  #8 (permalink)  
Antiguo 04/10/2008, 11:18
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: Contar elementos

claro, si te atoras acá andamos...
__________________
twitter: @imbuzu
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:07.