Simplifier/optimiser boucle for pour création d'éléments option
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:
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:
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à :pleure:, 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 :cry: non apparemment.
:hola: Une petite explication s'il vous plait