Javascript 无法使用JS函数生成树

Javascript 无法使用JS函数生成树,javascript,xml,recursion,Javascript,Xml,Recursion,为什么函数buildTree不迭代整个xml 以下是xml和JS的代码: var response=“AlexMusicSalsanatashiking”; 函数构建树(数据){ treePart=“”; 树部件+=“”; 如果(data.childrence.length!=0){ 对于(i=0;i

为什么函数buildTree不迭代整个xml

以下是xml和JS的代码:

var response=“AlexMusicSalsanatashiking”;
函数构建树(数据){
treePart=“”;
树部件+=“
    ”; 如果(data.childrence.length!=0){ 对于(i=0;i”+data.children[i]。标记名+“[-]”; treePart+=buildTree(data.children[i]); treePart+=“”; } treePart+=“
”; } 否则{ treePart+=“
  • ”+data.innerHTML+”
  • ”; } treePart+=“”; 返回树部件; } parser=新的DOMParser(); xml=parser.parseFromString(响应'text/xml'); x=构建树(xml); document.getElementById('app').innerHTML=x
    用于(i=0…

    如果不使用“var”或“let”声明
    i
    ,则它假定全局范围:
    当它在
    h
    标记上完成迭代时,
    i=2
    ,因此当它返回到第二个
    friend
    标记上进行迭代时,
    i
    为false并停止

    var response=“AlexMusicSalsanatashiking”;
    函数构建树(数据){
    treePart=“”;
    树部件+=“
      ”; 如果(data.childrence.length!=0){ //用“var”或“let”初始化i 对于(var i=0;i”+data.children[i]。标记名+“[-]”; treePart+=buildTree(data.children[i]); treePart+=“”; } //这太多了
    //treePart+=“”; } 否则{ treePart+=“
  • ”+data.innerHTML+”
  • ”; } treePart+=“”; 返回树部件; } parser=新的DOMParser(); xml=parser.parseFromString(响应'text/xml'); x=构建树(xml); document.getElementById('app').innerHTML=x;