views:

83

answers:

1

Maybe is a trivial problem, i don't know why this function exit from for cycle when it goes on else statement. I need this function to fetch an xml document.

function xmlToArray(element){
    childs= element.childNodes;
    if(childs.length != 1){
      for(var i=0;i<childs.length;i++){
        if(childs[i].hasChildNodes()){
          xmlToArray(childs[i]);
        }
        alert("exit from if");
      }//end for
      alert("exit from for");
    }//end if
    else{
      alert("do something with element");
    }
    alert("end of func");
}
+5  A: 

Since childs is not a local variable, all calls of xmlToArray work on the same data.

Try this:

function xmlToArray(element) {
    var childs = element.childNodes;
    // …
}

Using var declares that variable in the current scope.

Gumbo
yes, it was trivial:)Thanks a lot.
Manuel Bitto