标签:格式 data ons efi color src 去除 nbsp lang
山铝菜单
因为菜单选用了bootstrap tree,而格式需要是children类似的格式
var nodes = [ {name: "父节点1", children: [ {name: "子节点1"}, {name: "子节点2"} ]} ];
而后台的数据是id、pid格式的
var nodes = [ {id:1, pId:0, name: "父节点1"}, {id:11, pId:1, name: "子节点1"}, {id:12, pId:1, name: "子节点2"} ];
所以这个时候就要进行格式转换了
函数:
/* *data为ztree的结构数据 treecode treePcode code为父级节点的code */ function initData(data,code){ //第一步:构建两个对象 子对象,与父子关系的对象 var treeData; for(var i=0,childObj={},relatArr=[],relatArr1=[],relatObj={},nodes={nodes:[]};i<data.length;i++){ var _rowData=data[i]; if(_rowData.treePCode==‘0‘){ var _pnode=_rowData.treeCode; if(nodes[_rowData.treeCode]===undefined){ nodes[_rowData.treeCode]={nodes:[]}; } nodes.nodes=nodes[_rowData.treeCode].nodes; }else{ if(nodes[_rowData.treeCode]===undefined){ nodes[_rowData.treeCode]={text:_rowData.name,nodes:[],obj:_rowData,href:_rowData.link}; }else{ nodes[_rowData.treeCode].text=_rowData.name; nodes[_rowData.treeCode].obj=_rowData; nodes[_rowData.treeCode].href=_rowData.link; } if(nodes[_rowData.treePCode]===undefined){ nodes[_rowData.treePCode]={text:‘‘,nodes:[],obj:{},href:‘‘}; } nodes[_rowData.treePCode].nodes.push(nodes[_rowData.treeCode]); } } //去除nodes为空的键 for(var k in nodes){ if(k==‘nodes‘){ continue; } if(nodes[k].nodes.length==0){ delete nodes[k].nodes; } } console.log(nodes.nodes); }
例子:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Document</title> </head> <body> <script type="text/javascript"> var nodes = [ {id:73, pId:0,treeCode:73, treePCode:0, name: "父节点1"}, {id:7301, pId:73,treeCode:7301, treePCode:73, name: "子节点1"}, {id:73011, pId:7301,treeCode:73011, treePCode:7301, name: "子节点1"}, {id:73012, pId:7301, treeCode:73012, treePCode:7301,name: "子节点1"}, {id:7302, pId:73, treeCode:7302, treePCode:73,name: "子节点1"}, {id:73021, pId:7302,treeCode:73021, treePCode:7302, name: "子节点1"}, {id:73022, pId:7302,treeCode:73022, treePCode:7302, name: "子节点1"} ]; window.onload=function(){ console.log(initData(nodes,0)) } /* *data为ztree的结构数据 treecode treePcode code为父级节点的code */ function initData(data,code){ //第一步:构建两个对象 子对象,与父子关系的对象 var treeData; for(var i=0,childObj={},relatArr=[],relatArr1=[],relatObj={},nodes={nodes:[]};i<data.length;i++){ var _rowData=data[i]; if(_rowData.treePCode==‘0‘){ var _pnode=_rowData.treeCode; if(nodes[_rowData.treeCode]===undefined){ nodes[_rowData.treeCode]={nodes:[]}; } nodes.nodes=nodes[_rowData.treeCode].nodes; }else{ if(nodes[_rowData.treeCode]===undefined){ nodes[_rowData.treeCode]={text:_rowData.name,nodes:[],obj:_rowData,href:_rowData.link}; }else{ nodes[_rowData.treeCode].text=_rowData.name; nodes[_rowData.treeCode].obj=_rowData; nodes[_rowData.treeCode].href=_rowData.link; } if(nodes[_rowData.treePCode]===undefined){ nodes[_rowData.treePCode]={text:‘‘,nodes:[],obj:{},href:‘‘}; } nodes[_rowData.treePCode].nodes.push(nodes[_rowData.treeCode]); } } //去除nodes为空的键 for(var k in nodes){ if(k==‘nodes‘){ continue; } if(nodes[k].nodes.length==0){ delete nodes[k].nodes; } } return (nodes.nodes); } </script> </body> </html>
标签:格式 data ons efi color src 去除 nbsp lang
原文地址:https://www.cnblogs.com/pengfei25/p/11095417.html