JS: tabelle durchlaufen bricht nach erstem ohne fehler tr ab

Hallo,

so wie es der Titel bereits sagt, versuche ich eine Tabelle nach ihren tr’s und td’s zu durchlaufen, bei den td läuft das auch ganz schön, aber bereits nach dem ersten tr bricht es bereits OHNE Fehler ab…
Ich hab leider keine ahnung mehr, woran es noch liegen könnte…

hoffe, ihr könnt mir helfen:

var mlist = document.getElementById("spec"); var i = 0; var mbr; var mid; var a = 0; while(i+1 < mlist.getElementsByTagName("tr").length) { i++; mbr = mlist.getElementsByTagName("tr")[i]; mid = mbr.identifier; while(a+1 < mbr.getElementsByTagName("td").length) { a++; if(mbr.getElementsByTagName("td")[a].innerHTML == "true") { mbr.getElementsByTagName("td")[a].innerHTML = "<img src=\"\">"; MBRS[mid] = true; } else { mbr.getElementsByTagName("td")[a].innerHTML = "<img src=\"\">"; MBRS[mid] = false; } } }

mfg Joey

Daran, dass deine Zählervariable beim zweiten Durchlauf grösser ist als die Anzahl der TD - also ist die Bedingung für die zweite while-Schleife gar nicht mehr erfüllt.

Btw., für sowas würd’ ich for- den while-Schleifen vorziehen. (Eigentlich so gut wie immer, wenn die Anzahl Durchläufe bereits vorher feststeht, und der Schleifenabbruch nur vom Zählerstand abhängig gemacht werden kann.)

Und Ergebnisse von Methodenaufrufen wie getElementsByXY sollten zwischengespeichert werden, anstatt sie bei jedem Durchlauf erneut aufzurufen.
Darüber hinaus sind die hier eigentlich sowieso überflüssig, denn Table hat eine rows-Eigenschaft, die eine NodeList der TRs zur Verfügung stellt, und die haben dann wiederum cells.

Ok. Leuchtet ein…

Danke ^^