layui tree資料格式轉換
layui tree 資料格式轉換
layui官網
版本:2.5.5
在獲取資料構建tree中,資料一般為兩種形式:
1、json格式,以id pid表徵父子節點關係
var data1=[
{id:'aa',pId:'0',text:'root1'},
{id:'bb',pId:'aa',text:'left1'},
{id:'cc',pId:'aa',text:'left2'},
{id:'dd',pId:'0',text:'root2'},
{id:'ee',pId:'dd',text:'left3'},
];
2、樹狀格式,以children表徵子節點關係
var data2= [{
title: '早餐'
,id: 1
,children: [{title: '油條' ,id: 5 },
{title: '包子',id: 6},
{title: '豆漿',id: 7}
],
}];
layui支援第二種資料格式,故需要將json格式(id pId表示)轉換為具有children的樹狀層次資料格式
主要思想:迴圈遍歷json資料格式,根據pId找尋子節點,遞迴拼湊出資料結構。
根據data1生成tree效果如下:
原始碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script src="layui/layui.js"></script>
<link rel="stylesheet" href="layui/css/layui.css">
</head>
<body>
<div id="test1" class='demo-tree'></div>
</body>
</html>
<script>
var data=[ //原始資料
{id:'aa',pId:'0',text:'root1'},
{id:'bb',pId:'aa',text:'left1'},
{id:'cc',pId:'aa',text:'left2'},
{id:'dd',pId:'0',text:'root2'},
{id:'ee',pId:'dd',text:'left3'},
];
console.log(data);
var formatdata=[];
for(var i in data){ // pId為0時表示為根節點
if(data[i].pId=='0'){
var tempObject={};
tempObject.title=data[i].text;
tempObject.id=data[i].id;
tempObject.children=getChildren(tempObject.id);
formatdata.push(tempObject);
}
}
function getChildren(id){ //遞迴體 即對每條data逐條遞迴找children
var tempArray=[];
for(var i in data){
if(data[i].pId==id){
var tempChild={};
tempChild.title=data[i].text;
tempChild.id=data[i].id;
if(selectChildren(data[i].id)){ //若存在子節點,繼續遞迴;否則為葉節點,停止遞迴
tempChild.children=getChildren(data[i].id);
}
tempArray.push(tempChild);
}
}
return tempArray;
}
function selectChildren(id){ // 是否存在子節點
for(var i in data){
if(data[i].pId==id){
return true;
}
}
return false;
}
console.log(formatdata);
layui.use('tree', function(){ //layui tree寫法
var tree = layui.tree;
//渲染
var inst1 = tree.render({
elem: '#test1' //繫結元素
,data:formatdata
,edit: ['add', 'update', 'del'] //操作節點的圖示
,click: function(obj){
layer.msg(JSON.stringify(obj.data));
}
});
});
</script>
相關文章
- Hive資料格式轉換Hive
- Layui(十一) Layui Tree點選元件則載入相關資料UI元件
- mxnet資料格式轉換為tensorflow,pytorch資料PyTorch
- Oracle資料庫日期格式轉換操作Oracle資料庫
- Antd:Tree樹形控制元件資料解析(JSON轉換)控制元件JSON
- 把JSON資料格式轉換為Python的類物件JSONPython物件
- 影像格式轉換
- ABAP和XML資料格式互相轉換的兩種方式XML
- sqlserver資料庫日期如何格式化-日期轉換字串SQLServer資料庫字串
- api介面資料安全格式轉換-DES,AES,SM2API
- openssh key格式轉換
- hrsc2016資料集xml格式轉換為yolo格式,附下載連結XMLYOLO
- COCO資料集格式互換
- 教程:如何通過DLA實現資料檔案格式轉換
- C++中OpenCV、Armadillo矩陣資料格式的轉換方式C++OpenCV矩陣
- csv格式怎麼轉換成excel?csv格式轉換成excel格式檔案的方法Excel
- iview Tree資料格式問題,無限遞迴樹處理資料View遞迴
- 一招教你heic格式批量轉換png,必會的格式轉換!
- 圖片格式怎麼轉換,如何轉換jpg
- Python將xml格式轉換為json格式PythonXMLJSON
- LayUI—tree樹形結構的使用UI
- heic格式轉換jpg工具——轉易俠heic轉換器
- Poi 匯入格式轉換
- heic格式轉換軟體
- [時間格式的轉換]
- 轉換UTC時間格式
- 圖片格式轉換器有什麼,怎麼無損轉換heic格式
- 怎麼將CAD轉換為JPG格式?CAD格式轉換輕鬆教你搞定!
- 資料庫轉換工具,不同資料庫之前任意轉換資料庫
- 圖片格式轉換,JPG圖片轉換成PDF
- Python字典格式與JSON格式的相互轉換PythonJSON
- ChannelHandler之間處理資料格式轉換與Netty自帶的ChannelhandlerNetty
- 用兩種方法把JSON資料格式轉換為Python的類物件JSONPython物件
- PHP 轉換 SM2 加密資料 ASN1 編碼格式為 C1C3C2 格式資料PHP加密
- heic圖片轉換格式怎麼轉?
- Layui表格日期格式顯示UI
- Stimulsoft Reports如何建立新的資料轉換、編輯資料轉換
- layui tree 對節點進行搜尋UI