Andi: Hilfe mit rekursiver Funktion

Hallo!

Ich habe Probleme einen XHTML-Baum zu durchlaufen:

function walkTree(newnode) {
 var currentnode = newnode.firstChild;
  while (currentnode != null) {
   if(currentnode.hasChildNodes()){
    if(currentnode.nodeName=="CPTREE" && currentnode.getAttribute("FOR")==focusID) {
     var text = currentnode.firstChild.data.toString();
     var nodetext = document.createTextNode(text);
     currentnode.parentNode.replaceChild(nodetext, currentnode);
    }
   }
   walkTree(currentnode);
   currentnode = currentnode.nextSibling;
  }
 }
walkTree(element);

Das Problem ist, dass nicht alle Tags auf einer Ebene durchlaufen werden, was aber mit currentnode.nextSibling doch funktionieren sollte, oder?

Gruß
Andi

  1. Ja, habs schon selbst gefunden. Wen's interessiert: Wenn ich das DOM mit replaceChild verändere wird die Rekursion abgebrochen. Ich muss also nochmal von vorne starten oder den letzten Knoten zurückgeben.

    Hallo!

    Ich habe Probleme einen XHTML-Baum zu durchlaufen:

    function walkTree(newnode) {
    var currentnode = newnode.firstChild;
      while (currentnode != null) {
       if(currentnode.hasChildNodes()){
        if(currentnode.nodeName=="CPTREE" && currentnode.getAttribute("FOR")==focusID) {
         var text = currentnode.firstChild.data.toString();
         var nodetext = document.createTextNode(text);
         currentnode.parentNode.replaceChild(nodetext, currentnode);
        }
       }
       walkTree(currentnode);
       currentnode = currentnode.nextSibling;
      }
    }
    walkTree(element);

    Das Problem ist, dass nicht alle Tags auf einer Ebene durchlaufen werden, was aber mit currentnode.nextSibling doch funktionieren sollte, oder?

    Gruß
    Andi