Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/04/2007, 05:17
Avatar de derkenuke
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: creando funcion para mostrar un objeto completo: problema

Cita:
Iniciado por ASCENDEDMASTERS Ver Mensaje
otra cosa, supongamos que yo tengo variables con nombres como

var1
var2
var3

y yo quiero con un for recorrer a todas, como hago para escribir el nombre usando una variable para formar el nombre propiamente dicho?
Bueno, todas las variables cuelgan del objeto window, así que podrías hacer:
var var1="Hola", var2="que tal", var3="bien";
window["var1"]
window["var2"]
window["var3"]

También podrías construir algo con la función eval(), pero creo que es más limpio así.


Cita:
Iniciado por ASCENDEDMASTERS Ver Mensaje

Código PHP:
<html>
<
head><title>hola</title>
<
script language="JavaScript">
<!--
function 
abc(){
    var 
b="";
    var 
x={hola:"saludo"};
    for(var 
i in x)
        
b+=x+"<br>";
    
document.getElementById('redirect2').innerHTML=b;
    return 
b;
}
</script>
</head>
<body onLoad="abc()"> <!--<div-->
<div id="redirect2"></div>
</body>
</html> 



, porque no me funciona? es decir, si yo hago en el tag body asi

onLoad="document.getElementById('redirect2').inner HTML=abc()"
y en la funcion abc borrando la linea que hace document.... y retornando el valor b, me funciona, pero si hago document....=b adentro de la funcion no me funciona. porque?
Qué extraño... fíjate que ni siquiera se llama a la función (prueba metiendole un alert). Además hay otra cosa curiosa, si quitas el comentario HTML que has puesto, parece ser que todo funciona como debería:
Código PHP:
<head><title>hola</title>
<
script language="JavaScript">
<!--
function 
abc(){
    var 
b="";
    var 
x={hola:"saludo"};
    for(var 
i in x)
        
b+=x[i]+"<br>";
    
alert(b);
    
document.getElementById('redirect2').innerHTML=b;
    return 
b;
}
</script>
</head>
<body onload="abc()">
<div id="redirect2"></div>
</body>
</html> 
He corregido una línea, creo que dentro del bucle quisistes poner b+=x[i]+"<br>";


En firefox el comentario no da problemas, pero en IE.. pues.. qué le vamos a hacer.


Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.