效果图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a0758006a338e2abeca962e30fa49c47.png)
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box{
width:500px;
background: linear-gradient(-45deg,lightseagreen,lightpink,lightblue,lightyellow,lightcoral);
background: -webkit-linear-gradient(-45deg,lightseagreen,lightpink,lightblue,lightyellow,lightcoral);
}
.box span{
display: block;
height:35px;
line-height: 35px;
cursor: pointer;
}
.box span.close:before{
content: "+";
font-size: 20px;
font-weight: bold;
color:red;
}
.box span.open:before{
content: "-";
font-size: 30px;
font-weight: bold;
color:red;
}
</style>
</head>
<body>
<ul class="box" id="box">
<li><span>第一级菜单</span>
<ul>
<li><span>第二级菜单</span>
<ul>
<li><span>第三级菜单</span>
<ul>
<li><span>第四级菜单</span></li>
<li><span>第四级菜单</span></li>
</ul>
</li>
<li><span>第三级菜单</span></li>
<li><span>第三级菜单</span></li>
<li><span>第三级菜单</span></li>
</ul>
</li>
<li><span>第二级菜单</span>
<ul>
<li><span>第三级菜单</span></li>
<li><span>第三级菜单</span></li>
<li><span>第三级菜单</span></li>
<li><span>第三级菜单</span></li>
</ul>
</li>
<li><span>第二级菜单</span>
</li>
<li><span>第二级菜单</span></li>
</ul>
</li>
<li><span>第一级菜单</span></li>
<li><span>第一级菜单</span></li>
<li><span>第一级菜单</span></li>
</ul>
<script>
let box = document.getElementById("box");
let spans = document.getElementsByTagName("span");
for(let i=0;i<spans.length;i++){
let cur = spans[i];
if(cur.nextElementSibling){
cur.classList.add("close");
cur.nextElementSibling.style.display="none"
}else{
cur.classList.add("open");
}
}
box.onclick = function(e){
let cur = e.target;
let next = cur.nextElementSibling;
if(next){
if(cur.className==="close"){
next.style.display="block";
cur.className="open";
}else{
let uls = next.getElementsByTagName("ul");
for(let j=0;j<uls.length;j++){
uls[j].style.display="none";
uls[j].previousElementSibling.className="close";
}
next.style.display="none";
cur.className="close";
}
}
}
</script>
</body>
</html>