Andreas: Rekursion innerhalb einer Objektmethode

Beitrag lesen

Hallo,

habe ein Problem mit folgendem JS-Code:

// *************************************
function Displayer () {
  // leerer Konstruktor
}

Displayer.prototype.getAsHtml = function (node, expandLevel) {
 html = node.getTitle() + "<br>";
 childNodes = node.getChildNodes();
 for (i=0; i<childNodes.length; i++) {
  if (expandLevel > 0) html += this.getAsHtml(childNodes[i], expandLevel - 1);
  // Gedanke: rekursives Durchlaufen des Node-Baumes
  // Problem: Rekursion laeuft nicht wie gewuenscht - die for-Schleife wird in jeder
  // Ebene nur einmal durchlaufen
 }
 return html;
}
// *************************************

Ich habe eine Baumstruktur, die aus Node-Objekten besteht, und möchte diesen Baum durchlaufen.
Das Ganze soll für ein Menü verwendet werden.
Das Problem ist, daß die Rekursion nur unvollständig durchgeführt wird.
Kennt jemand dieses Problem?

Beispiel:
Ich habe einen Root-Node, dieser hat meinetwegen 5 ChildNodes, von denen jeder wieder x ChildNodes hat.
Mit obiger Rekursion erfolgt aber nur die Ausgabe des Root-Nodes, des 1. ChildNodes sowie dessen 1. ChildNodes.

Ich kann mir das nicht erklären.

Dankbar für Tips und Denkanstöße:
Andreas