Есть дерево (обычный JavaScript объект):
rootNode
|--NodeA
|----NodeA1
|----....
|--NodeB
|----NodeB1
.....
нужно получить
строку вида
<div rootNode>
<div NodeA>
<div NodeA1></div>
</div>
.....
</div>
Псевдокод
var html = '';
//обход дерева
function traverse(node){
// здесь загвоздка
// нужно вставлять div'ы "втутрь" родительских
// а сейчас получается "плоское" представление, т.е:
// <div>RootNode</div> <div>NodeA</div> <div>NodeA1</div> <div>NodeB</div> .....
html += '<div>'+node.ID+'<div'>'
// рекурсивный вызов для дочерних элементов
traverse(node.childrens);
}
traverse(rootNode);
После первого вызова мы будем иметь:
<div>RootNode</div>
В рекурсии на втором вызове:
<div>RootNode</div> <div>NodeA</div>
а нужно:
<div>RootNode
<div>NodeA</div>
</div>