在开发过程中瞒免不了会用到多级菜单的使用,在某些场合中,我们会需要动态的获取到多级菜单的数据,在不知道自己的菜单究竟有几级的情况下怎样进行菜单的展示呢?
在对这个需求进行分析的时候会发现,我的菜单数据是一个json格式的一个数据,我的当前的菜单可能包含下一级菜单的内容,那么我就可以把每一个有下一级菜单的当做一个菜单,判断如果有下一级菜单的情况下就在对下一级菜单进行相同的解析,这时候便想到了用递归的形式,递归的出口就是已经完成的遍历了当前所有的菜单。
下面附上json格式的菜单和json转换成Html的源码:
** "menu":[** ** {"name":"菜单一,** ** "menu":[** ** {"name":"菜单一-1"},** ** {"name":"菜单一-2"}** ** ]** ** },** ** {"name":"菜单二",** ** "menu":[** ** {"name":"菜单二-1",** ** "menu":[** ** {"name":"菜单二-1-a"},** ** {"name":"菜单二-2-b"}** ** ]** ** },** ** {"name":"菜单二-2"}** ** ]}** ** {"name":"菜单三"}** ** ]**
通过递归的形式进行Html的转换:
** function getMenuHtml(var json){** ** var html="<ul>";**