2010-02-01 5 views
0

J'essaie de mettre un tableau dans getElementById à des fins de boucle. Il semble ne pas fonctionner, comment puis-je faire cela?getElementById (array [x])?

Editer: Désolé les gens Il est dit non défini.

var lol=new Array("test", "test2"); 

var x = 0; 
while(x == 4) { 
    number = parseInt(document.getElementById(lol[x]).value); 
    x++; 
} 

Et j'ai des entrées id nommé test et test2.

+1

* Il semble ne pas fonctionner *: Des messages d'erreur, un comportement inattendu, etc? Le code aiderait également ... –

+9

Vous avez une erreur de syntaxe sur la ligne 31

+0

Extrait de code + message d'erreur = problème pouvant être diagnostiqué. –

Répondre

7

Votre boucle while ne fonctionne que si x == 4. Changer cela:

while(x < lol.length) 

à boucle à travers tous les éléments du tableau. Mieux encore, cela va se condenser votre boucle:

var lol=new Array("test", "test2"); 
for(var x = 0; x < lol.length; x++) { 
    number = parseInt(document.getElementById(lol[x]).value); 
} 
0

Essayez de prendre votre tableau sur les citations ...

document.getElementById(lol[x]).value 

Les citations transforment en une chaîne statique « lol [x] », quand vous voulez la valeur du tableau lol à l'index x.

Cela remplace ma réponse antérieure, moins éclairée.

Espérons que cela aide

+0

Pour la partie de citation, il était à l'origine pas là, j'ai juste oublié de l'enlever après un essai. – Strawberry

0

Vous dites que vous avez number = parseInt(document.getElementById("lol[x]").value);

  1. "lol[x]" est une chaîne avec cette valeur littérale, et non la valeur lol tient à l'index x. Utiliser getElementById(lol[x])

  2. parseInt peut faire des choses inattendues lorsque vous ne passez pas une base. Utilisez quelque chose comme parseInt(document.getElementById(lol[x]).value, 10)

Enfin, vous ne vérifiez pas si l'élément existe. Faire quelque chose comme:

var element = document.getElementById(lol[x]); 
if (element) { 
    number = parseInt(element.value, 10); 
} else { 
    // handle error or throw exception 
}