Jörg Peschke: Rekursion

Beitrag lesen

Hallo,

function zeige_nodes(obj)
{
instanz++;
anzahl=obj.childNodes.length;
for(z=0;z<anzahl;z++)
{
  document.write("<tr>");
  document.writeln("<td>Anzahl: " + String(anzahl) + ", z: " + String(z) + "</td>");
  for(i=0;i<instanz;i++)
  {
   document.writeln("<td>&nbsp;&nbsp;</td>");
  }
  document.write("<td colspan=30>" + String(obj.childNodes[z].nodeName) + "</td>");
  document.writeln("</tr>");
  if(obj.childNodes[z].hasChildNodes())
  {
   zeige_nodes(obj.childNodes[z]);
  }
}
instanz--;
}

Deine Variablen "anzahl" und "z" sind im gesammten Kontext gültig und werden damit mit jedem Aufruf  von "zeigeNodes" überschreiben.
Vielleicht liegts daran?

Ein

var anzahl = 0;
var z = 0;

am Anfang Deiner zeigeNodes-Funktion löst vielleicht Dein Problem
(damit bekommt jeder Aufruf von "zeigeNodes" sein eigenes z und anzahl).

Viele Grüße,
Jörg