Shanlv menu
Because the menu selected bootstrap tree, and the desired format is a format similar to children
was nodes = [ name {: "parent node. 1" , Children: [ name {: "child node 1" }, name {: "child node 2" } ]} ];
The background data is id, pid format
was nodes = [ ID {: 1, pId: 0, name: "a parent node" }, ID {: . 11, pId: 1, name: "child node 1" }, ID {: 12 is, pId:. 1, name: "child node 2" } ];
So this time it should be a format conversion
function:
/* Configuration data treecode treePcode code * data of a parent node of the code ztree * / Function initData (Data, code) { // Step: Construction of two objects child objects, the parent-child relationship object 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]); } } // remove nodes empty key for ( var K in nodes) { IF (K == 'nodes' ) { Continue ; } if(nodes[k].nodes.length==0){ delete nodes[k].nodes; } } console.log(nodes.nodes); }
example:
<!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"> was 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)) } /* Configuration data treecode treePcode code * data of a parent node of the code ztree * / Function initData (Data, code) { // Step: Construction of two objects child objects, the parent-child relationship object 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]); } } // remove nodes empty key 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>