Comunidad de diseño web y desarrollo en internet online

Problema con una funcion

Citar            
MensajeEscrito el 28 Ago 2014 05:16 pm
Hola, estoy teniendo un problema para llamar los objetos que tengo una función. Este ejercicio es de una clase del curso de programación de mejorandola, aqui dejo el codigo.

Código:

Código Javascript :

function Pokemon(n,v,a,t){
   this.nombre = n;
   this.vida = v;
   this.ataque = a;
   this.tipo = t;
}
var Lucario = new Pokemon("Lucario", 100, 90, "Peleador-Acero");
var Torterra = new Pokemon("Torterra", 100, 80, "Planta-Tierra");
var Entei = new Pokemon("Entei", 100, 100, "Fuego-Legendario");

var PE = prompt("Elige tu pokemon\nLucario\nTorterra\nEntei");
var imgp = "img/" + PE + ".jpg";

document.getElementById("FotoPoke").src = imgp;
NP.innerText = PE.nombre;
VP.innerText = PE.vida;
AP.innerText = PE.ataque;
TP.innerText = PE.tipo;


El problema esta en que, para mostrar la foto segun el pokemon que eligio el usuario uso PE que es la variable donde se almasena el nombre del pokemon que eligio el usuario, me muestra la imagen del pokemon que eligo todo bien, pero no me muestra la informacion por que dice que esta indefinido, solo me muestra la info cuando pongo por ejemplo.
Código:

Código Javascript :

NP.innerText = Lucario.nombre;


pero igual la variable PE tiene el mismo valor, no entiendo por que no me funciona. Y otra cosa los "NP, VP, AP, TP" son los nombres de los contenedores que van a tener la informacion en html esta <p id="NP"></p>. Saludos.

Por Darcring

8 de clabLevel



Genero:Masculino  

Frontend Web Developer

chrome
Citar            
MensajeEscrito el 29 Ago 2014 10:45 pm
Tu error es

var PE = prompt(".... bla bla...

despues de que el usuario ingresa un valor PE es ahora un STRING

por lo que:

Código Javascript :

NP.innerText = "Lucario".nombre;


en vez de:

Código Javascript :

NP.innerText = Lucario.nombre;


Por eso esta indefinido.

Asi que ahora debes definir esa String para que deje de serlo y algo feo seria como

Código Javascript :

if(PE == "Lucario"){
    NP.innerText = Lucario.nombre;

VP.innerText = Lucario.vida;

AP.innerText = Lucario.ataque;

TP.innerText = Lucario.tipo;
}


Te digo que esta mal por que imagínate hacerlos todos jejeje perdida de tiempo

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 30 Ago 2014 04:31 pm

elporfirio escribió:

Tu error es

var PE = prompt(".... bla bla...

despues de que el usuario ingresa un valor PE es ahora un STRING

por lo que:

Código Javascript :

NP.innerText = "Lucario".nombre;


en vez de:

Código Javascript :

NP.innerText = Lucario.nombre;


Por eso esta indefinido.

Asi que ahora debes definir esa String para que deje de serlo y algo feo seria como

Código Javascript :

if(PE == "Lucario"){
    NP.innerText = Lucario.nombre;

VP.innerText = Lucario.vida;

AP.innerText = Lucario.ataque;

TP.innerText = Lucario.tipo;
}


Te digo que esta mal por que imagínate hacerlos todos jejeje perdida de tiempo


Hola, hace poco me dieron la solución, pero con la explicación que me diste ya me quedo mucha mas claro por que pasaba el error :3, la solución que me dieron fue esta.

Código Javascript :

NP.innerText = window[PE].nombre;

y de esa forma ya puedo hacer referencia a los objetos, ya no lo toma como string si no como la variable Lucario. Saludos, y gracias por comentar.

Por Darcring

8 de clabLevel



Genero:Masculino  

Frontend Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.