递归生成部门树节点
- 前端
- 三生万物
- 0
// 生成部门树
function generateDepartmentTree(data, htmlArr) {
data.forEach(function(item) {
htmlArr.push(`<li>
<span data-id="${item.id}">
<span></span>
<span>${item.name}</span>
</span>`);
if(item.children && item.children.length) {
htmlArr.push(`<ul>`);
generateDepartmentTree(item.children, htmlArr);
htmlArr.push(`</ul>`);
}
htmlArr.push(`</li>`);
});
}
var departmentTreeHtmlArr = [];
var list = [
{
id: 1,
name: '1',
children: [
{
id: 10,
name: '10',
children: [
{
id: 110,
name: '110'
},
{
id: 111,
name: '111'
}
]
}
]
}
];
generateDepartmentTree(list, departmentTreeHtmlArr);
var departmentTreeHtml = departmentTreeHtmlArr.join('');
console.log(departmentTreeHtml);
document.querySelector('ul').innerHTML = departmentTreeHtml ;
结果:
-
1
-
10
- 110
- 111
-
10
添加padding-left
值:
function generateDepartmentTree(data, htmlArr, paddingLeft=0) {
var isExistChildren;
data.forEach(function(item) {
isExistChildren = item.children && item.children.length;
htmlArr.push(`<li>
<span data-id="${item.id}" style="padding-left: ${paddingLeft}px;">
<span></span>
<span title="${item.name}">${item.name}</span>
</span>`);
if(isExistChildren) {
htmlArr.push(`<ul>`);
generateDepartmentTree(item.children, htmlArr, paddingLeft+20);
htmlArr.push(`</ul>`);
}
htmlArr.push(`</li>`);
});
}
免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。