У меня есть некоторые проблемы с рекурсивной функцией для создания TreeView (с использованием MetroUI) из некоторых XML-данных. В первой области, поэтому первый уровень дерева создается, как ожидалось, но второй не создается. Мой XML-данных имеет следующую структуру:Рекурсия не работает должным образом
<tree>
<sitenode>
<name>First Element</name>
<children>
<sitenode>
...
</sitenode>
</children>
</sitenode>
</tree>
JavaScript-код, который я использую это один:
var tree = $('#dlgEditorCreateNewSiteSelParent').data('treeview');
/* Helper-function for Recursion */
function dlgEditorCreateNewSiteCreateParentTreeViewNodes(nodes, parent) {
var i, j;
/* Alle knoten durchlaudfen */
for (i = 0; i < nodes.length; i++) {
/* Add leaf */
var node = tree.addLeaf(parent, $(nodes[i]).find('>name').text());
/* Children */
var children = $(nodes[i]).find('children > sitenode');
for (j = 0; j < children.length; j++) {
/* REKURSION */
//alert('childre child nr. '+j+' with name '+$(children[j]).find('> name').text());
dlgEditorCreateNewSiteCreateParentTreeViewNodes(children[j], node);
}
}
}
var roots = $(result).find('tree > sitenode');
dlgEditorCreateNewSiteCreateParentTreeViewNodes(roots, false);
Я уже искал некоторые сопоставимые проблемы, но все, что я нашел, было связано с областью встречных переменных.
спасибо, но это не сработало. Но я нашел другой способ решить проблему, передав полный массив в рекурсию. В последние дни я был немного в убытке (вы так говорите в англише?) –