用js写一个递归菜单
时间: 2023-02-10 14:26:08 浏览: 65
好的。
下面是用 JavaScript 写的一个递归函数来生成菜单的示例:
```
function generateMenu(menu) {
let html = '<ul>';
for (let item of menu) {
html += '<li>';
if (item.title) {
html += item.title;
}
if (item.items) {
html += generateMenu(item.items);
}
html += '</li>';
}
html += '</ul>';
return html;
}
const menu = [
{
title: '菜单 1',
items: [
{
title: '菜单 1-1',
items: [
{
title: '菜单 1-1-1',
},
{
title: '菜单 1-1-2',
},
],
},
{
title: '菜单 1-2',
},
],
},
{
title: '菜单 2',
},
];
document.body.innerHTML = generateMenu(menu);
```
在这个例子中,`generateMenu` 函数接受一个包含菜单项的数组,并递归地生成 HTML 代码。每个菜单项是一个对象,包含一个 `title` 属性和可选的 `items` 属性,后者表示这个菜单项的子菜单。
上面的代码会生成如下的 HTML 代码:
```
<ul>
<li>菜单 1
<ul>
<li>菜单 1-1
<ul>
<li>菜单 1-1-1</li>
<li>菜单 1-1-2</li>
</ul>
</li>
<li>菜单 1-2</li>
</ul>
</li>
<li>菜单 2</li>
</ul>
```
希望这对你有帮助!