2010-02-26 7 views
3

어쩌면 사소한 문제 일 수 있습니다. 왜이 함수가 else 문으로 넘어갈 때이 함수가 사이클을 종료하는지 알 수 없습니다. XML 문서를 가져 오기 위해이 함수가 필요합니다. childs 이후자바 스크립트의 재귀 함수

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"); 
} 
+0

스택에서 완전히 떨어지고, 반복 될 때마다, 다른 셀이 발견되거나 레벨이 올라간다는 것을 의미합니까? – Tarka

답변

8

는 지역 변수, 동일한 데이터에 xmlToArray 작업의 모든 호출하지 않습니다.

이 시도 :

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

var을 사용하면 현재 범위에서 해당 변수를 선언합니다.

+0

예, 그것은 사소했습니다 :) 고마워. –