来自对象javascript的嵌套div
我有一个目标:来自对象javascript的嵌套div,javascript,jquery,html,object,Javascript,Jquery,Html,Object,我有一个目标: var data = { "lay": "h_m_f", "h": { "par": { "first_second": { "first": { "module": { "article": { "archivclankyrubrika": "3",
var data = {
"lay": "h_m_f",
"h": {
"par": {
"first_second": {
"first": {
"module": {
"article": {
"archivclankyrubrika": "3",
"pocetclanku": "10"
}
}
},
"second": {
}
}
},
"next": {
"one": {
"val": {
}
},
}
},
}
};
我尝试从这个对象构建html嵌套div。若节点并没有子节点,那个么显示内部文本。但问题是,这个脚本并没有遍历子脚本。结果我只有两个div。
我的问题在哪里,伙计们?谢谢你的回答。这是我的剧本:
function create_node(obj){
var node = document.createElement('div');
node.setAttribute('class', Object.keys(obj)[0]);
for (var i in obj) {
node.appendChild(create_node(obj.i));
}
return node;
}
console.log(create_node(jsonTemplate));
更新:对我来说最理想的结果是:每个对象都是div,类在模块之前。Module是最后一个div,并且以文本形式显示模块的公民密钥
<div class="h">
<div class="par">
<div class='first_second'>
<div class="first">
<div class="module">
article
</div>
</div>
<div class="second">
</div>
</div>
</div>
<div class="next">
<div class="one">
<div class="val">
</div>
</div>
</div>
</div>
如果节点是对象-迭代子节点并追加结果,如果不是-追加文本: var jsonTemplate={lay:h_m_f,h:{par:{first_second:{first:{module:{article:{archivclankyrubrika:3,pocetclanku:10}}},second:{},next:{one:{val:{}}; 函数create_nodevalue,key{ var节点=document.createElement'div'; node.setAttribute'class',键| |; ifkey==“模块”{ Object.keysvalue.forEachfunctionkey{ node.appendChilddocument.createTextNodekey | |; } 返回节点; } ifvalue&&typeof value==='object'{ 对于var i的价值{ node.appendChildcreate_nodevalue[i],i; } } 返回节点; } root.appendChildcreate_nodejsonTemplate;
Obj.我不正确,应该是Obj[i] HTML应该是什么样的?@ Sergk,它是无限循环的。@ RryMyCulsAn喜欢文章,那么PAR和第一个会发生什么,AgviCrChanyRuRika,3?知道NULL也是一个“对象”。@ OriDrori谢谢,先生!我有个问题。如果我把第二把钥匙换成第一把。这意味着我现在有两把钥匙。为什么在结果中只显示其中一个-last?对象属性名称应该是唯一的。如果您有两个同名的属性。第二个将覆盖第一个。所以你实际上只有1个第一名object@OriDrori我可以问你吗。有没有可能反过来做呢。我的意思是从html构建对象?非常感谢。