将Json数组转换为树形结构生成菜单列表
2017-03-31 14:13
1211 查看
/*将Json数组转换为树形结构*/ function transDate(list,idstr,pidstr){ var result = [],temp = {}; for(i = 0; i < list.length; i++){ temp[list[i][idstr]]=list[i];//将nodes数组转成对象类型 } for(j=0; j<list.length; j++){ tempVp = temp[list[j][pidstr]]; //获取每一个子对象的父对象 if(tempVp){//判断父对象是否存在,如果不存在直接将对象放到第一层 if(!tempVp["nodes"]) tempVp["nodes"] = [];//如果父元素的nodes对象不存在,则创建数组 tempVp["nodes"].push(list[j]);//将本对象压入父对象的nodes数组 }else{ result.push(list[j]);//将不存在父对象的对象直接放入一级目录 } } return result;};/*Dom*/var showlist = $("<ul></ul>");console.log(menulist);console.log(menulist.nodes);showall(menulist.nodes, showlist);
/*将树形结构生成菜单*/function renderMenu(menu, parent) {console.log('parent:'+menu);var parent_id =menu.parent_id;console.log('parent_id'+menu.parent_id);var el = $('<a href="' + menu.link +'">' + menu.title + '</a>');$(parent).append(el);if (menu.parent_id !='0') {return parent;}var ul = $('<ul/>');for (var i = 0; i < menu.nodes.length; ++i) {var li = $('<li/>');renderMenu(menu.nodes[i], li);ul.append(li);}$(parent).append(ul);return parent;};function render(json) {var div = $('<div/>');return renderMenu(json, div);};function showall(menu_list, parent) {console.log(menu_list)for (var menu in menu_list) {//如果有子节点,则遍历该子节点if (menu_list[menu].nodes.length > 0) {//创建一个子节点livar li = $("<li></li>");//将li的文本设置好,并马上添加一个空白的ul子节点,并且将这个li添加到父亲节点中$(li).append(menu_list[menu].title).append("<ul></ul>").appendTo(parent);//将空白的ul作为下一个递归遍历的父亲节点传入showall(menu_list[menu].nodes, $(li).children().eq(0));}//如果该节点没有子节点,则直接将该节点li以及文本创建好直接添加到父亲节点中else {$("<li></li>").append(menu_list[menu].title).appendTo(parent);}}}
相关文章推荐
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- 关系数据库当中存放树形结构(同层有序),一次性生成对应树形菜单
- 将字符串修改成数组,这是生成的字符型坐标,转换成json格式
- 将数据库的树形结构的数据,转成JSON,用于树形列表显示
- 多表关联前端生成json传值给后台(类似树形结构)
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- Jquery+ztree+json+webservice+mysql制作树形菜单+ajax列表页面
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- 微信自定义菜单,php配置一个多维数组,通过json_encode()生成json字符串,中文会转为\uxxxx,微信报错!
- java编程两种树形菜单结构的转换代码
- JS无限极树形菜单,json格式、数组格式通用示例
- 利用多叉树实现Ext JS中的无限级树形菜单(一种构建多级有序树形结构JSON的方法)
- 用fastjson为Ztree生成多级树形菜单JSON数据源
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法
- jQuery递归遍历JSON树,生成对应的ul-li组合,形成树形菜单
- 将树形结构生成Json字符串
- 两种树形菜单结构互相转换
- JSON-JSON字符串转换成JSON对象、JSON对象数组、java实体类以及保存到List列表中
- Java代码获取菜单列表的树形结构
- JSON-JSON字符串转换成JSON对象、JSON对象数组、java实体类以及保存到List列表中