要求
1、点击一级菜单,如果当前二级菜单是打开状态则二级菜单收起,小图标变成+
如果当前二级菜单是关闭状态则展开二级菜单,小图标变成- 并且收起其他的二级菜单
2、页面中的二级菜单最多只能有一个是展开状态
方法一:
<html> <head> <title>1. 实现伸缩二级菜单</title> <meta charset="utf-8" /> <style> li{ list-style:none; } li span { padding-left:20px; cursor:pointer; } .open{ background:url("img/minus.png") no-repeat center left; } .closed{ background: url("img/add.png") no-repeat center left; } .show{display:block;} .hide{display:none;} </style> <script type="text/javascript"> window.onload = function (){ var Allspan = document.getElementsByTagName('span'); for(var i = 0 ; i<Allspan.length; i++){ Allspan[i].onclick=function(){ if(this.className =="open"){ this.className = "closed"; this.nextElementSibling.className="hide"; }else{ var span = document.querySelector("ul.tree span.open"); if(span){ span.className="closed"; span.nextElementSibling.className = "hide"; } this.className = "open"; this.nextElementSibling.className="show"; } } } } </script> </head> <body> <ul class="tree"> <li> <span class="open" >考勤管理</span> <ul class="show"> <li>日常考勤</li> <li>请假申请</li> <li>加班/出差</li> </ul> </li> <li> <span class="closed" >信息中心</span> <ul class="hide"> <li>通知公告</li> <li>公司新闻</li> <li>规章制度</li> </ul> </li> <li> <span class="closed">协同办公</span> <ul class="hide"> <li>公文流转</li> <li>文件中心</li> <li>内部邮件</li> <li>即时通信</li> <li>短信提醒</li> </ul> </li> </ul> </body> </html>
方法二:
<!DOCTYPE HTML> <html> <head> <title>1. 实现伸缩二级菜单</title> <meta charset="utf-8" /> <style> li{ list-style:none; } li span { padding-left:20px; cursor:pointer; } .open{ background:url("img/minus.png") no-repeat center left; } .closed{ background: url("img/add.png") no-repeat center left; } .show{display:block;} .hide{display:none;} </style> <script type="text/javascript"> window.onload = function (){ var Allspan = document.getElementsByTagName('span'); for(var i = 0 ; i<Allspan.length; i++){ Allspan[i].onclick=function(){ if(this.className =="open"){ this.className = "closed"; this.nextElementSibling.className="hide"; }else{ var span = document.querySelector("ul.tree span.open"); if(span){ span.className="closed"; span.nextElementSibling.className = "hide"; } this.className = "open"; this.nextElementSibling.className="show"; } } } } </script> </head> <body> <ul class="tree"> <li> <span class="open" >考勤管理</span> <ul class="show"> <li>日常考勤</li> <li>请假申请</li> <li>加班/出差</li> </ul> </li> <li> <span class="closed" >信息中心</span> <ul class="hide"> <li>通知公告</li> <li>公司新闻</li> <li>规章制度</li> </ul> </li> <li> <span class="closed">协同办公</span> <ul class="hide"> <li>公文流转</li> <li>文件中心</li> <li>内部邮件</li> <li>即时通信</li> <li>短信提醒</li> </ul> </li> </ul> </body> </html>