Foros del Web » Programando para Internet » Javascript »

document.getElementById .... is null or not an object.

Estas en el tema de document.getElementById .... is null or not an object. en el foro de Javascript en Foros del Web. Estoy trabajando en un script en ajax que entre otras cosas debería servirme para rotar fotos, la idea es que al clickear en un boton ...
  #1 (permalink)  
Antiguo 20/02/2010, 16:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
document.getElementById .... is null or not an object.

Estoy trabajando en un script en ajax que entre otras cosas debería servirme para rotar fotos, la idea es que al clickear en un boton me cambie el src de la imagen.

El problema es que me devuelve el error este...creo que el problema esta en que la imagen en cuestion es generada dinamicamente y por eso no encuentra el ID, puede ser?

Y de ser así que solución posible existe?

Muchas gracias desde yá.
  #2 (permalink)  
Antiguo 20/02/2010, 17:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: document.getElementById .... is null or not an object.

si te sale ese error es porque no existe algun elemento con el ID que estas indicando. asegurate que estes pasando el ID correcto y que el elemento tenga un ID.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 20/02/2010, 17:05
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: document.getElementById .... is null or not an object.

Hola:

Si dinámicamente se crea el tag con el id que buscas, será mejor referenciarlo después de recibir los datos.

Alternativas son temporizar la asignación, o tener el tag con ese id existente, pero tal vez oculto.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 20/02/2010, 17:33
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Me tome el trabajo de reescribir el código para que la imagen se genere en forma estática y el problema persiste asi que eso no era.
El ID es el correcto, a esta altura lo tengo mas que verificado.

Que otra cosa puede ser? :(
  #5 (permalink)  
Antiguo 20/02/2010, 17:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: document.getElementById .... is null or not an object.

verifica que la imagen este en el documento antes del script intentar accederlo. es decir, la imagen tiene que existir en el documento primero.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 20/02/2010, 17:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: document.getElementById .... is null or not an object.

Hola:

No estarás usando ese mismpo id como nombre de alguna otra variable u objeto...
Tal vez tan solo sea cuestión de redefinirlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 20/02/2010, 17:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Nop, ya probe con otros ids y tampoco va.
  #8 (permalink)  
Antiguo 20/02/2010, 18:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Cita:
Iniciado por zerokilled Ver Mensaje
verifica que la imagen este en el documento antes del script intentar accederlo. es decir, la imagen tiene que existir en el documento primero.
Bueno con eso me hago un lio porque no se si lo que vale es el punto donde se incluye el script o el momento donde se llama a la función....pero de todos modos probe copiando el código debajo de la imagen y no cambia nada.
  #9 (permalink)  
Antiguo 20/02/2010, 18:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: document.getElementById .... is null or not an object.

tendras algun ejemplo en linea para comprobarlo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 20/02/2010, 18:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Me quiero volver chango!

Se me dio por probar con un tercer browser (opera) y funciona a la perfección, pero en IE y Firefox no. :(
  #11 (permalink)  
Antiguo 20/02/2010, 18:33
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Cita:
Iniciado por zerokilled Ver Mensaje
tendras algun ejemplo en linea para comprobarlo.
La verdad que no pero dejo el codigo por las dudas

Código:
function get_pic(pic, pic_id) {

	mydiv = document.getElementById('pic_bg');
	mypic = "pics/" + pic;
	
	var pic_cont = document.getElementById(pic_id);

	ajax=objetoAjax();
	ajax.open("GET", mypic, true);

	ajax.onreadystatechange=function() {
  	
		if (ajax.readyState == 1) { 
			mydiv.innerHTML = "<img src='../img/ajax-loader.gif'>";
		}
		if (ajax.readyState == 4) { 
			pic_cont.src = mypic;	
		}

	}


  ajax.send(null);
  
}
  #12 (permalink)  
Antiguo 20/02/2010, 18:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: document.getElementById .... is null or not an object.

¿cual es la linea que la consola de error te indica como error? supongo que una de estas dos.
Código:
	mydiv = document.getElementById('pic_bg');
	var pic_cont = document.getElementById(pic_id);
no me gusta estar adivinando pero supongo que mydiv es un elemento contenedor de la imagen y pic_cont es la imagen en si. asumo tambien que pic_cont esta dentro de mydiv. entonces, el ajax elimina el contenido por una imagen que indica que esta cargando la imagen. luego cuando cambia a estado 4 se cambia la imagen por la deseada. el unico problema que estoy viendo es que pic_cont ya no existe en el documento aunque la variable retiene una referencia del elemento por lo que no genera ningun error, solo que no vas a ver ningun cambio. de momento pienso que aqui no es donde esta el error.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #13 (permalink)  
Antiguo 20/02/2010, 18:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

gracias por tu tiempo, la linea que genera el error es

Código:
pic_cont.src = mypic;
pic_cont es la imagen a la cual se le rota el src
mydiv es el div donde esta incluida pic_cont
  #14 (permalink)  
Antiguo 20/02/2010, 19:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: document.getElementById .... is null or not an object.

como ya te indicaba, el ajax esta borrando la imagen del documento. en lugar escribir la imagen de carga con innerHTML, haz referencia a la imagen contenedora y asignale la URL de la imagen de carga. de esta forma el elemento sigue existiendo en el documento. es decir, tienes que hacer lo mismo que haces en el estado 4 pero en el estado 1 con la URL de la imagen de carga.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 20/02/2010 a las 19:14 Razón: error sintactico
  #15 (permalink)  
Antiguo 21/02/2010, 05:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 21 años
Puntos: 1
Respuesta: document.getElementById .... is null or not an object.

Muchas gracias amigo, esto definitivamente solucionó el problema, y gracias tambien caricatos.

Última edición por Finseneu; 21/02/2010 a las 05:50

Etiquetas: null, object
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 15:51.