如何根据 json 生成无限极动态菜单

2016-09-25 20:46:14 +08:00
 0f2e3z8n4z
//每一个菜单是平行的。
{
	"MENU_ID": 1,
	"MENU_NAME": "系统管理",
	"MENU_URL": "#",
	"PARENT_ID": "0",//顶级菜单
	"MENU_ORDER": "1"//菜单的顺序
},
{
	"MENU_ID": 2,
	"MENU_NAME": "权限管理",
	"MENU_URL": "#",
	"PARENT_ID": "1",//父级菜单是系统管理
	"MENU_ORDER": "1"//菜单的顺序
}

...后面还有好多菜单

MENU_ID 是菜单的标识符

PARENT_ID 说明父级菜单是谁

DOM 结构

<ul>
    <li>
    	<a>系统管理</a>
        <ul>
            <li>
            	<a>权限管理</a>
                <!-- 后面也许还有子菜单,也许子菜单后面还有子菜单  -->
            </li>
        </ul>
    </li>
</ul>

我的思路是用一个数据来存储顶级菜单和它的子菜单,然后用字符串一个一个拼起来

但是我发现,我在写的过程中要使用很多的 for 循环,而且我自己写的时候写的挺乱的。

这种问题是不是用设计结构会好解决一点?不过数据结构上学期学了,这学期都忘了不少 = =

4127 次点击
所在节点    程序员
6 条回复
sherlocktheplant
2016-09-25 20:50:24 +08:00
用递归
Spectre
2016-09-25 22:37:23 +08:00
ztree
0f2e3z8n4z
2016-09-26 00:25:24 +08:00
@Spectre 不打算用插件
reus
2016-09-26 03:38:26 +08:00
bramblex
2016-09-26 03:45:23 +08:00
0f2e3z8n4z
2016-09-27 10:30:52 +08:00
@reus thx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/308878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX