Foros del Web » Programando para Internet » Javascript »

problema para acceder a array de capas

Estas en el tema de problema para acceder a array de capas en el foro de Javascript en Foros del Web. Hola a todos! Estoy teniendo problemas para poder acceder a la propiedad de diferentes capas. Normalmente seria nombre_capa.style.width, por ejemplo, pero en mi caso tengo ...
  #1 (permalink)  
Antiguo 27/08/2003, 08:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 6 meses
Puntos: 1
problema para acceder a array de capas

Hola a todos!
Estoy teniendo problemas para poder acceder a la propiedad de diferentes capas. Normalmente seria nombre_capa.style.width, por ejemplo, pero en mi caso tengo que cambiarle el valor a la misma propiedad de todas las capas de una pagina, para lo que he hecho lo siguiente:

var capas=document.getElementsByTagName("div");
var num_capas = capas.length

for (i=0; i<num_capas; i++)
{
capas[i].style.left= (parent.document.all.mapa.width - capas[i].style.width) /2
}

(parent.document.all.mapa.width es el ancho del iframe donde está contenida la pagina)

El caso es que no entiendo porqué da error, que por cierto está en lo de capas[i].style.width, y no da error cuando pongo capas[i].style.left=50, cuando en realidad son propiedades completamente equiparables. Alguien puede ayudarme? Graciass!
  #2 (permalink)  
Antiguo 27/08/2003, 10:05
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Debspain:

Ya que estas usando style para acceder a las propiedades de tus capas, supongo que estás probando en IE. PUes internet explorer, no te devuelve el valor numérico del ancho del objeto con "capas[i].style.width", sino una cadena con la forma "50px" por ejemplo.

Entonces, tu problema se soluciona usando la función parseInt:

Código:
var capas=document.getElementsByTagName("div");
var num_capas = capas.length
for (i=0; i<num_capas; i++){
   capas[i].style.left= (parent.document.all.mapa.width - 
                         parseInt(capas[i].style.width))/2;
}
Espero que te sirva.
Saludos.
  #3 (permalink)  
Antiguo 27/08/2003, 10:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 224
Antigüedad: 21 años, 6 meses
Puntos: 1
Hola Beakdan!
No se como no cai en ese detalle, como estuve haciendo pruebas para que imprimiera en una ventana alert algun ancho o alto de algun objeto y me imprimia por ejemplo 350px pues no me preocupé de pasarlo a un valor numérico, pero claro para hacer operaciones no es posible. MUchisimas gracias!! Funciona perfectamente!
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 14:12.