V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
0f2e3z8n4z
V2EX  ›  程序员

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

  •  
  •   0f2e3z8n4z · Sep 25, 2016 · 4788 views
    This topic created in 3507 days ago, the information mentioned may be changed or developed.
    //每一个菜单是平行的。
    {
    	"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 循环,而且我自己写的时候写的挺乱的。

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

    6 replies    2016-09-27 10:30:52 +08:00
    sherlocktheplant
        1
    sherlocktheplant  
       Sep 25, 2016
    用递归
    Spectre
        2
    Spectre  
       Sep 25, 2016
    ztree
    0f2e3z8n4z
        3
    0f2e3z8n4z  
    OP
       Sep 26, 2016 via Android
    @Spectre 不打算用插件
    0f2e3z8n4z
        6
    0f2e3z8n4z  
    OP
       Sep 27, 2016
    @reus thx
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1084 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 17:27 · PVG 01:27 · LAX 10:27 · JFK 13:27
    ♥ Do have faith in what you're doing.