Foros del Web » Programando para Internet » Javascript »

Problema Funcion

Estas en el tema de Problema Funcion en el foro de Javascript en Foros del Web. Hola a todos, Tengo esta función javascript : Cita: function recargar (obj) { oSelect = document.getElementById("lista_asignaturas"); oItems = oSelect.getElementsByTagName("option"); alert ("Numero de elementos: " + ...
  #1 (permalink)  
Antiguo 24/04/2007, 08:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema Funcion

Hola a todos,

Tengo esta función javascript:

Cita:
function recargar (obj) {
oSelect = document.getElementById("lista_asignaturas");
oItems = oSelect.getElementsByTagName("option");

alert ("Numero de elementos: " + oItems.length);
for(i=0; i<oItems.length; i++) {
alert ("Valor: "+obj.options[i].value);
}
}
En el primer alert me muestra: Numero de elementos: 4 (Esto es cierto en la aplicación)

En el alert del for, me muestra una sola vez, el primer elemento, y de forma infinita me muestra el último elemento.

¿Qué estoy haciendo mal?

Gracias.
  #2 (permalink)  
Antiguo 24/04/2007, 08:42
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problema Funcion

Hola Vane_

En el primer alert estás utilizando oSelect y en el segundo utilizas obj que se supone que es un objeto que le pasar al llamar a la función.

Saludos,
  #3 (permalink)  
Antiguo 24/04/2007, 09:13
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema Funcion

Hola JavierB,

Mira, en el for, en el 2º alert, he probado esto:

Cita:
alert ("obj.value: "+oItems[i].value);
Y sigue pasando lo mismo.....

Gracias por contestar, pero alguna otra idea??
  #4 (permalink)  
Antiguo 24/04/2007, 09:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problema Funcion

Hola de nuevo.

El objeto lo "sacas" de aquí:

oSelect = document.getElementById("lista_asignaturas");

Así que tendrás que poner:

alert ("Valor: "+oSelect.options[i].value);

Espero que te funcione. Saludos,
  #5 (permalink)  
Antiguo 24/04/2007, 09:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema Funcion

Hola Javierb

Tanto con oItems[i].value como con oSelect.options[i].value me da los valores,p ero me parece que el fallo está en el for pq no es normal que me muestre el 1º y el ultimo elemento de manera infinita.......

Que cosa mas rara ....
  #6 (permalink)  
Antiguo 24/04/2007, 18:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Problema Funcion

Quizás tengas declarado i en otra parte... ten en cuenta que tal y como está escrito ahí, i es global, y todo lo que modifique i se verá reflejado en el for. Así se solucionaria:
for(var i=0; i<10; i++)
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 18:59.