来自对象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构建对象?非常感谢。