【发布时间】:2014-02-04 01:52:40
【问题描述】:
我需要从 json 数组创建一个动态嵌套的 ul\li 列表。
注意!我可以使用 jQuery 进行自我转换,但在这种情况下,我需要使用字符串,因为它是 node.js 并且我无权访问 DOM。
数组也可以有不同的深度。
这是我使用的 json 数据以及它在转换后的外观。
var data = [{"id": "1", "name": "name_1", "parent_id": "0", "depth": "0"},
{"id": "2", "name": "name_2", "parent_id": "0", "depth": "0"},
{"id": "3", "name": "name_3", "parent_id": "1", "depth": "1"},
{"id": "4", "name": "name_4", "parent_id": "3", "depth": "2"}];
<ul>
<li>name_1</li> //depth 0
<li>name_2 //depth 0
<ul>
<li>name_3 //depth 1
<ul>
<li>name_3</li> //depth 2
</ul>
</li>
</ul>
</li>
</ul>
我希望这很清楚。如果没有,请在评论中提出任何问题。 提前谢谢你。
【问题讨论】:
-
那里有一些奇怪的 JSON。我认为 JSON 的全部意义在于它是分层的。您的 JSON 似乎“扁平化”。
-
是的。所以,我需要处理这个(
-
这是一些奇怪的 HTML,如果您至少将下一个深度放在它自己的 LI 中,而不是与前一个深度相同的 LI 中,那会更容易。
-
我同意@simonplus - 你能控制 JSON 格式吗?如果是这样,摆脱 id 并将孩子嵌入到他们父母的数组属性中。有副作用,它会小得多。
-
您可以看到每个 json 行都有一个 parent_id,它与其中一个 json 字符串的 id 匹配。如果你看到另一个结构,请分享。谢谢。
标签: javascript html arrays json node.js