在 JavaScript 中实现无限级树形菜单,通常涉及到递归的数据结构和相应的渲染逻辑。
基础概念:
优势:
类型:
parentId
)指明其父节点。应用场景:
常见问题及解决方法:
以下是一个简单的无限级树形菜单的示例代码(使用嵌套对象表示法):
// 树形菜单数据示例
const menuData = [
{
id: 1,
name: '菜单 1',
children: [
{
id: 2,
name: '子菜单 1-1',
children: [
{ id: 3, name: '子菜单 1-1-1', children: [] },
{ id: 4, name: '子菜单 1-1-2', children: [] }
]
},
{ id: 5, name: '子菜单 1-2', children: [] }
]
},
{
id: 6,
name: '菜单 2',
children: []
}
];
// 渲染树形菜单的函数
function renderMenu(menu) {
let html = '<ul>';
menu.forEach(item => {
html += `<li>${item.name}`;
if (item.children && item.children.length > 0) {
html += renderMenu(item.children);
}
html += '</li>';
});
html += '</ul>';
return html;
}
// 将渲染结果显示在页面中
document.getElementById('menu-container').innerHTML = renderMenu(menuData);
在上述代码中,renderMenu
函数通过递归的方式遍历树形数据并生成相应的 HTML 结构。
领取专属 10元无门槛券
手把手带您无忧上云