Bonjour tout le monde,
je me permes de faire appel � la communaut� car j'ai un petit soucis en utilisant DOM et ne parvient pas � le r�soudre.
Un dessin vaut parfois mieux qu'un long discours, alors voici le code suivant (j'explique le soucis apr�s)
Mon soucis:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 var Tableau = new Array(); Tableau[1] = "Data 1"; Tableau[2] = "Data 2"; var MainUL = document.createElement("UL"); var MainLI = document.createElement("LI"); var MainLItext = document.createTextNode("Root"); MainLI.appendChild(MainLItext); var SecondUL = document.createElement("UL"); for(Cpt = 1; Cpt <= Tableau.length - 1; Cpt++) { var cLI = document.createElement("IL"); var cLItext = document.createTextNode(Tableau[Cpt]); cLI.appendChild(cLItext); cLI.onclick = function() {AfficheID(Cpt);} SecondUL.appendChild(cLI); } MainLI.appendChild(SecondUL); MainUL.appendChild(MainLI); document.appendChild(MainUL);
Comme vous pouvez le voir, je parcours un tableau Javascript, et � chaque ligne de ce tableau, je cr�er un �l�ment de liste et affecte � la m�thode "onclick()" une fonction. Mon souhaite, serais de passer en arguement de cette fonction l'ID de Tableau correspondant � l'�l�ment. Au moment de l'execution du script, cet ID est donc repr�sent� par la variable Cpt, le probl�me, c'est qu'une fois que le script est enti�rement ex�cut� (et donc que je peux effectiver cliquer sur un �lement de la liste), l'arguement qui est pass� est toujours la derni�re valeur qu'aura prit Cpt (en loccurence 2), mais jamais la valeur que Cpt avait au moment de la cr�ation de l'�l�ment !
Comment faire pour que ce soit l'ID de mon �lement qui passe en arguement ??? je ne peux bien sur par l'�crire en dur puisque je parcours le tableau pourtant, d�s que je met une variable, cette variable �tant commune � tous les �lements (variable de la boucle de cr�ation des �l�ments) c'est syst�m�tiquement la derni�re valeur de cette variable qui est passer...
sniff, plus, help...
merci par avance pour vos id�es...
PS: ceci n'est pas l'int�gralit� de mon code, je l'ai all�g� pour vous montrer le principal et surtout ce qui ne me va pas, aussi si j'ai fais une erreur de frappe ou que le code tel quel ne fonctionne pas exactement, ne vous inqui�tez pas, il est l� juste pour vous faire comprendre le contexte.
Partager