MudGuard: Schleife bricht ab

Beitrag lesen

Hi,

function ABC(){
i=0; //compteur
sortie = "";  //contenu de l'élément de liste
nom_prenom = ""; //contenu après inversion des nom/prénom
chanteur = new Array(); //tableau des chanteurs après inversion
mots = ""; //nom et prénom du chanteur constituant l'élément de liste
while (i  < document.getElementsByTagName("li").length){
   //document.write("ligne17: " + document.getElementsByTagName("li")[i].firstChild.data);
   chanteurs.push(document.getElementsByTagName("li")[i].firstChild.data);
   document.write("ligne 19: nombre d'éléments: " + document.getElementsByTagName("li").length + "<br>");

Hiermit hast Du Dein aktuelles Dokument vernichtet, womit keine <li> mehr vorhanden sind...

sortie = sortie + chanteurs[i];
   document.write ("ligne 21: " + sortie + "<br>");
   mots = sortie.split (" ")   //séparation des nom/prénom
   nom_prenom = mots[1] + " " + mots[0];      //inversion nom et prénom
   document.write( "ligne 24: i et chanteur : " + i + " " + chanteurs[i] + "<br>");
   chanteur.push(nom_prenom);
   document.write ("ligne 26: i= " + i + " " + chanteur[i] + "<br>");
   }

Hättest Du oben nicht das Dokument vernichtet, hättest Du eine Endlosschleife.
Denn dann wäre document.getElementsByTagName("li").length konstant und i ist auch konstant. Also gibt es zwei Möglichkeiten: die Schleife wird gar nicht durchlaufen (wenn kein li vorhanden ist) oder endlos (wenn mind. ein li vorhanden ist, denn dann wäre i [immer 0] immer kleiner als die Anzahl der li)

cu,
Andreas

--
Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.