Salut

Dans un code qui fonctionne, je voudrais optimiser le remplissage de 2 <select>, id="indicatif1" et id="indicatif2".
Dans ma version de base j'ai 2 boucles for.
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
				for (i = 0; i < dataOM.length; i++) {
					z = document.createElement("option");
					z.setAttribute("value", dataOM[i].indicatif);
					z.setAttribute("id", "choix" + i);
					t = document.createTextNode(dataOM[i].indicatif);
					z.appendChild(t);
					document.getElementById("indicatif1").appendChild(z);
					if (dataOM[i].indicatif == nomindicatif){numidx=i;}
				}
				document.getElementById("nbr").innerHTML = "Listage " + dataOM.length + " indicatifs";
				document.getElementById("indicatif1").selectedIndex = numidx;
				affiche("indicatif1");
				for (i = 0; i < dataOM.length; i++) {
					z = document.createElement("option");
					z.setAttribute("value", dataOM[i].indicatif);
					z.setAttribute("id", "choix" + i);
					t = document.createTextNode(dataOM[i].indicatif);
					z.appendChild(t);
					document.getElementById("indicatif2").appendChild(z);
				}
Mes 2 select se remplissent correctement.

Par contre si je modifie de cette façon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
				for (i = 0; i < dataOM.length; i++) {
					z = document.createElement("option");
					z.setAttribute("value", dataOM[i].indicatif);
					z.setAttribute("id", "choix" + i);
					t = document.createTextNode(dataOM[i].indicatif);
					z.appendChild(t);
					document.getElementById("indicatif1").appendChild(z);
					document.getElementById("indicatif2").appendChild(z);
					if (dataOM[i].indicatif == nomindicatif){numidx=i;}
				}
Ben là , je n'ai que le <select> id="indicatif2" qui est rempli.
Je suis super déçu, je croyais, depuis maintenant 1 an et demi que je me suis mis au JavaScript, avoir compris le minimum des choses, ben non apparemment.

Une petite explication s'il vous plait