实现效果
html
<div id="menu"></div>
js代码:
let json = [
{
name: "一级菜单1",
children: [
{
name: "二级菜单1",
children: [
{
name: "三级菜单1",
children: [
{ name: "四级菜单1",path:'menu4/menu1' },
{ name: "四级菜单2" ,path:'menu4/menu2'},
{ name: "四级菜单3",
children: [{ name: "五级菜单3-5",path:'menu4/menu3-5' }] }] }] }]
},
{ name: "一级菜单2",
children: [{ name: "二级菜单2", children: [{ name: "三级菜单2", children: [{ name: "四级菜单2" }, { name: "四级菜单2-2" }, { name: "四级菜单2-3", children: [{ name: "五级菜单2-3-5" }] }] }] }] }]
let menu = document.getElementById('menu');
let menuFun = function (data) {
let str = "";
for (let i = 0; i < data.length; i++) {
str+=`<li>${data[i].name}`;
if (Array.isArray(data[i]['children'])) {
str += `<ul>${menuFun(data[i]['children'])}</ul></li>`;
}
}
return str;
};
menu.innerHTML =`<ul>${menuFun(json)}</ul>`;
菜单折叠后期更新