Javascript 来自json(树)JS的嵌套html

Javascript 来自json(树)JS的嵌套html,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个像这样的json { desc: "text", nodes: [{ desc: "text1", nodes: [ {desc: "text3"}, {desc: "text4"} ]}, {desc: "text2", nodes: [ {desc: "text5"} ]} ] } 我的问题是创建嵌套的html对象,

我有一个像这样的json

{
   desc: "text",
   nodes: [{
       desc: "text1",
       nodes: [
           {desc: "text3"},
           {desc: "text4"}
       ]},
       {desc: "text2",
       nodes: [
          {desc: "text5"} 
       ]}
   ]
}
我的问题是创建嵌套的html对象,如:

<div> 
   text
   <div> text1 
         <div> text3 </div>
         <div> text4 </div>
   </div>

   <div> text2 
         <div> text5 </div>
   </div>
</div>
它可以是纯文本(很容易解析),但我无法处理这个问题,我尝试了递归,但它完全崩溃了:/


最重要的是,您缺少的是您没有将生成的
el
追加到DOM,因此它是全部创建的,但从未追加。使用
.appendChild(节点)
实现所需:

function buildTree(tree) {
  let node = tree;
  var el = document.createElement('div');

  el.innerHTML = node.desc;

  if (node.nodes) {
    node.nodes.forEach(function(n) {
      el.appendChild(buildTree(n));
    });
  }

  return el;
}
var tree = buildTree(data);
document.querySelector('body').appendChild(tree);
见下面的概念证明:

var数据={
描述:“文本”,
节点:[{
描述:“文本1”,
节点:[{
描述:“文本3”
},
{
描述:“文本4”
}
]
},
{
描述:“文本2”,
节点:[{
描述:“文本5”
}]
}
]
};
函数构建树(树){
让节点=树;
var el=document.createElement('div');
el.innerHTML=node.desc;
if(node.nodes){
node.nodes.forEach(函数(n){
el.appendChild(buildTree(n));
});
}
返回el;
}
var-tree=buildTree(数据);
document.querySelector('body').appendChild(树)
div{
左侧填充:10px;

}
向我们展示您已经尝试过的内容您需要的是递归。查看您已经尝试的内容会有很大帮助,这样我们可以帮助诊断错误
function buildTree(tree) {
  let node = tree;
  var el = document.createElement('div');

  el.innerHTML = node.desc;

  if (node.nodes) {
    node.nodes.forEach(function(n) {
      el.appendChild(buildTree(n));
    });
  }

  return el;
}
var tree = buildTree(data);
document.querySelector('body').appendChild(tree);