【发布时间】:2017-09-30 05:08:33
【问题描述】:
我在将 JSON 转换为列表时遇到了一点问题。我能够阅读所有元素,但目前它在结构上列出了错误的列表。
这里是 JSON:
{
name: 'test,
value: 'value',
nodes: [
{
name: 'next test',
value: 'next value',
nodes: [...]
},
{
name: 'third test',
value: 'third value',
nodes: [...]
}
]
}
我想创建这样的东西:
<ul>
<li>test: value</li>
<ul>
<li>next test: next value</li>
<li>third test: third value</li>
</ul>
</ul>
我在 CoffeeScript 中创建了一个循环,但它却做了这样的事情:
<ul>
<li>test: value</li>
<ul>
<li>next test: next value</li>
<ul>
<li>third test: third value</li>
</ul>
</ul>
</ul>
所以一切都是相互嵌套的。
这是我的代码:
point = $('#jstree_demo_div');
loopData = (node) ->
if(node.name != undefined)
name = node.name;
value = node.value;
ul = $('<ul>');
li = $('<li>');
li.append(name + ' - <b>' + value + '</b>');
ul.append(li);
point.append(ul);
point = li;
for chart in node.nodes
loopData(chart);
loopData(json);
知道我应该在此处更改什么以制作正确的结构列表吗?
有这个条件:
if(node.name != undefined)
因为当名称未定义时,它不应该转到下一个更深的节点。
【问题讨论】:
-
您正在分配 point = li,然后是 point.append(ul)。因此将 ul 嵌套在 li 中。我不知道语法,所以我不能写一个工作示例:(
标签: javascript json coffeescript microsoft-distributed-file-system