Foros del Web » Programando para Internet » Javascript »

Cambiar imagen mediante document.getElementsByName

Estas en el tema de Cambiar imagen mediante document.getElementsByName en el foro de Javascript en Foros del Web. Hola, haber si me podeis explicar el porque esta asignación en javascript no funciona. Yo vengo de C y no sé si en js será ...
  #1 (permalink)  
Antiguo 11/03/2011, 12:24
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Cambiar imagen mediante document.getElementsByName

Hola, haber si me podeis explicar el porque esta asignación en javascript no funciona. Yo vengo de C y no sé si en js será de alguna otra manera. Lo que intento es cambiar la imagen del elemento anterior:
Código HTML:
if(oldprod == prod) {
  document.getElementsByName(oldname).src = 'images/boton-bebidas-' + oldname + '-off.png';
}
Las variables contienen correctamente los valores, lo he probado con alert.

Saludos
  #2 (permalink)  
Antiguo 11/03/2011, 12:40
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Cambiar imagen mediante document.getElementsByName

document.getElementsByName devuelve una colección de elementos a la que debe accederse por índice, como si de un array se tratase. Al primer elemento de la colección se accedería así:
Código PHP:
var im1=document.getElementsByName(oldname)[0];
//y luego, por ejemplo:
alert(im1.src); 
  #3 (permalink)  
Antiguo 11/03/2011, 13:02
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Cambiar imagen mediante document.getElementsByName

Hola y gracias Panino5001.

Funciona perfectamente. Acabo de darme cuenta (nose porque pensaba antes que estaba correcto) que las variables old no me guardan los valores. Te dejo el script por si lo quieres probar o verlo mas claro:
Código HTML:
function cambiarValores(obj,prod) {
  var img = obj.src;
  img = img.split('/').pop();
  img = img == 'boton-bebidas-' + obj.name + '-off.png' ? 'images/boton-bebidas-' + obj.name + '-on.png' : 'images/boton-bebidas-' + obj.name + '-off.png';
  obj.src = img;

  if(oldprod == prod) {
    var im1 = document.getElementsByName(oldname)[0]; 
    im1.src = 'images/boton-bebidas-' + oldname + '-off.png';
}
  var oldprod = prod;
  var oldname = obj.name;
}
Me toma oldprod como undefined, porque no guarda el antiguo valor?

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 13:07.