Javascript 递归不能正常工作

Javascript 递归不能正常工作,javascript,recursion,tree,treeview,metro-ui-css,Javascript,Recursion,Tree,Treeview,Metro Ui Css,我在使用递归函数从一些XML数据创建TreeView(使用MetroUI)时遇到了一些问题。在第一个作用域中,即树的第一级,按预期创建,但第二级未创建。我的XML数据具有以下结构: <tree> <sitenode> <name>First Element</name> <children> <sitenode> ... </sitenode>

我在使用递归函数从一些XML数据创建TreeView(使用MetroUI)时遇到了一些问题。在第一个作用域中,即树的第一级,按预期创建,但第二级未创建。我的XML数据具有以下结构:

<tree>
  <sitenode>
    <name>First Element</name>
    <children>
      <sitenode>
        ...
      </sitenode>
    </children>
  </sitenode>
</tree>

第一要素
...
我使用的JavaScript代码如下:

var-tree=$('#dlgEditorCreateNewSiteSelParent')。数据('treeview');
/*递归的辅助函数*/
函数dlgEditorCreateNewSiteCreateParentTreeViewNodes(节点,父节点){
varⅠ,j;
/*阿勒·诺滕·杜奇劳芬*/
对于(i=0;iname').text());
/*孩子们*/
var children=$(nodes[i]).find('children>sitenode');
对于(j=0;jname').text());
dlgEditorCreateNewSiteCreateParentTreeViewNodes(子[j],节点);
}
}
}
变量根=$(结果).find('tree>sitenode');

dlgEditorCreateNewSiteCreateParentTreeViewNodes(根,false)谢谢,但这不起作用。但我找到了另一种解决问题的方法,将完整数组传递到递归中。前几天我有点不知所措(你用英语是这样说的吗?)
  for (j = 0; j < children.length; j++) {
  /* REKURSION */
  //alert('childre child nr. '+j+' with name '+$(children[j]).find('> name').text());
  dlgEditorCreateNewSiteCreateParentTreeViewNodes(children[j], node);
}
children.forEach(function(child) {
    dlgEditorCreateNewSiteCreateParentTreeViewNodes(child, this);
}, node);