2010-05-23 4 views
3

Chers experts, J'essayais de générer dynamiquement des éléments DOM en utilisant JS. Je lis dans le livre de Douglas Crockford que DOM est très très mal structuré.Stocker des éléments de référence DOM dans un tableau Javascript

Quoi qu'il en soit, je voudrais créer un certain nombre d'éléments DIVISION et stocker la référence dans un tableau afin qu'il puisse être consulté plus tard.

est ici le code

for(i=0; i<3; i++) { 
    var div = document.body.appendChild(document.createElement("div")); 
    var arr = new Array(); 
    arr.push(div); 
} 

D'une certaine façon cela ne fonctionnerait pas ..... Il y a seulement 1 élément div créé. Lorsque j'utilise le arr.length pour tester le code, il n'y a qu'un seul élément dans le tableau.

Existe-t-il un autre moyen d'accomplir ceci?

Merci à l'avance

+2

La meilleure façon de remercier quelqu'un est d'accepter sa réponse. Quelqu'un devait le dire :) – alex

Répondre

13

Vous recréent le tableau à chaque itération (et découpage ainsi).

Je pense que vous voulez quelque chose comme ça.

var arr = []; // more succinct version of new Array(); 

for (var i = 0; i < 3; i++) { 
    var div = document.body.appendChild(document.createElement('div')); 
    arr.push(div);   
}; 
+0

génie, Ty alex. Comment ne pouvais-je pas penser à ça ... –

+4

@webzide, n'oubliez pas de cliquer sur le bouton cocher à côté de la publication d'alex pour qu'il reçoive un crédit! – Warty

3

Vous créez une matrice distincte chaque fois que la boucle s'exécute.
Par conséquent, chaque instance de tableau

Vous devez déplacer la variable arr en dehors de la boucle.

Questions connexes