js只对第一个一级类目生效 是什么原因?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="project1.css" />
    <script src="project1.js"></script>
<style type="text/css">
    *{
    margin: 0;
    padding: 0;
}
img{
    border:0;
}
ol, ul ,li{list-style: none;}

a{text-decoration:none }

.nav{width:260px;position: relative;box-sizing: border-box;background: #fff;display: block;margin-left: 20px;}
.nav ul li {margin-left: 20px;color: #fff;background: #31302a;line-height: 65px;border-bottom: 1px solid #ccc;}

.nav ul li: hover {color: #000;background: #fff;}

.nav-one{position: relative;color: #fff;background: #31302a;height:60px;line-height: 60px;padding-left:20px;}


.nav-two{position: relative;color: #000;background: #fff;height:45px;line-height: 45px;padding-left:30px;}
.nav-two:hover {color: lightblue;background: #272822;}

.nav-three{position: relative;color: #000;height:40px;line-height: 40px;cursor: pointer;}

.nav-two-father{display: none;}
.nav-three-father{display: none;}

.nav ul li ul li {position: relative;color: #000;background: #fff;line-height: 45px;padding-left:30px;}
    
</style>

</head>
<body>
   <div class="nav">
       <ul>
           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks()">一级类目</a>
               <ul  class="nav-two-father"   id="open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="boxp()"
                       >二级类目</a>
                       <ul  class="nav-three-father"
                       id="box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
               </ul>
           </li>

           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks()">一级类目</a>
               <ul  class="nav-two-father"   id="open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="boxp()"
                       >二级类目</a>
                       <ul  class="nav-three-father"
                       id="box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
               </ul>
           </li>
       </ul>
   </div>
<script type="text/javascript">
   var i = 1;
    var x = 1;

        function clicks()
            {
                i++;
                if( i%2 ==0){
                    document.getElementById("open").style.display = "block" ;
                }
                else{
                    document.getElementById("open").style.display = "none" ;
                }
            }

        function boxp()
            {
                x++;
                if( x%2 ==0){
                    document.getElementById("box").style.display = "block" ;
                }
                else{
                    document.getElementById("box").style.display = "none" ;
                }
            }
    
</script>

</body>
</html>

</script>

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="project1.css" />
    <script src="project1.js"></script>
<style type="text/css">
    *{
    margin: 0;
    padding: 0;
}
img{
    border:0;
}
ol, ul ,li{list-style: none;}
 
a{text-decoration:none }
 
.nav{width:260px;position: relative;box-sizing: border-box;background: #fff;display: block;margin-left: 20px;}
.nav ul li {margin-left: 20px;color: #fff;background: #31302a;line-height: 65px;border-bottom: 1px solid #ccc;}
 
.nav ul li: hover {color: #000;background: #fff;}
 
.nav-one{position: relative;color: #fff;background: #31302a;height:60px;line-height: 60px;padding-left:20px;}
 
 
.nav-two{position: relative;color: #000;background: #fff;height:45px;line-height: 45px;padding-left:30px;}
.nav-two:hover {color: lightblue;background: #272822;}
 
.nav-three{position: relative;color: #000;height:40px;line-height: 40px;cursor: pointer;}
 
.nav-two-father{display: none;}
.nav-three-father{display: none;}
 
.nav ul li ul li {position: relative;color: #000;background: #fff;line-height: 45px;padding-left:30px;}
    
</style>
 
</head>
<body>
   <div class="nav">
       <ul>
           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks(0)">一级类目</a>
               <ul  class="nav-two-father open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="boxp(0)"
                       >二级类目</a>
                       <ul  class="nav-three-father box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
               </ul>
           </li>
 
           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks(1)">一级类目</a>
               <ul  class="nav-two-father open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="boxp(1)"
                       >二级类目</a>
                       <ul  class="nav-three-father box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
               </ul>
           </li>
       </ul>
   </div>
<script type="text/javascript">
   var i0 = 1,x0 = 1,i1 = 1,x1 = 1;
 
        function clicks(a)
            {
                a==0?i0++:i1++;
                if( (a==0?i0:i1)%2 ==0 ){
                    document.getElementsByClassName("open")[a].style.display = "block" ;
                }
                else{
                    document.getElementsByClassName("open")[a].style.display = "none" ;
                }
            }
 
        function boxp(a)
            {
                a==0?x0++:x1++;
                if( (a==0?x0:x1)%2 ==0){
                    document.getElementsByClassName("box")[a].style.display = "block" ;
                }
                else{
                    document.getElementsByClassName("box")[a].style.display = "none" ;
                }
            }
    
</script>
 
</body>
</html>

 

因为你指定了两组同样的ID,你通过获取只能有一个Id生效,所以你加的事件和效果是不对的,你要做折叠菜单的话,我跟你个例子,如果你需要在你的基础上改的话,你可以私聊我:

<ol class="tree">
    <li>
        <label for="folder1" class="folderOne">泽元框架</label> <input type="checkbox" id="folder1" />
        <ol>
            <li>
                <label for="subfolder1"class="folderTwo">开发规范</label> <input type="checkbox" id="subfolder1"  />
                <ol>
                    <li class="file folderThree"><a href="#">常见界面错误举例</a></li>
                    <li class="file folderThree"><a href="#">关于发行报告对BUG管理提出…</a></li>
                    <li class="file folderThree"><a href="#">插件内部JAVA包命名规范</a></li>
                </ol>
            </li>
            <li class="file folderTwo"><a href="#">概述</a></li>
            <li class="file folderTwo"><a href="#">服务器集群</a></li>
            <li class="file folderTwo"><a href="#">模板</a></li>
            <li class="file folderTwo"><a href="#">安全机制</a></li>
        </ol>

    </li>
    <li>
        <label for="folder2" class="folderOne" >ZCMS</label> <input type="checkbox" id="folder2" />
        <ol>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
            <li>
                <label for="subfolder2" class="folderTwo">实时数据</label> <input type="checkbox" id="subfolder2"  />
                <ol>
                    <li class="file folderThree"><a href="#">实时数据</a></li>
                    <li class="file folderThree"><a href="#">实时数据</a></li>
                    <li class="file folderThree"><a href="#">实时数据</a></li>
                </ol>
            </li>
        </ol>
    </li>
    <li>
        <label for="folder3"  class="folderOne">ZAS</label> <input type="checkbox" id="folder3" />
        <ol>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
        </ol>
    </li>
    <li>
        <label for="folder4"  class="folderOne">ZHTML标签</label> <input type="checkbox" id="folder4"/>
        <ol>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
        </ol>
    </li>
    <li>
        <label for="folder5"  class="folderOne">UI框架API手册</label> <input type="checkbox" id="folder5"/>
        <ol>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
            <li class="file folderTwo"><a href="#">实时数据</a></li>
        </ol>
    </li>
</ol>

<style type="text/css">
    .tree {margin: 0;padding: 0;background-color:#f2f2f2;overflow: hidden;}
    /*隐藏input*/
    .tree li input{position: absolute;left: 0;opacity: 0;z-index: 2;cursor: pointer;height: 1em;width:1em;top: 0;}
    /*所有菜单项设置统一样式*/
    .tree li {position: relative;list-style: none;}
    /*一级菜单加下边线*/
    .tree>li{border-bottom: 1px solid #d9d9d9;}
    /*给有子菜单的菜单项添加背景图标*/
    .tree li label {max-width:999px;cursor: pointer;display: block;margin:0 0 0 -50px;padding: 15px 10px 15px 70px;background: url(../../images/cp-detail-arrow-b.png) no-repeat right center;background-position:95% 50%;white-space:nowrap;overflow:hidden;text-overflow: ellipsis; }
    .tree li label:hover,li label:focus{background-color:#a7a7a7;color:#fff;}
    /*清除所有展开的子菜单的display*/
    .tree li input + ol{display: none;}
    /*当input被选中时,给所有展开的子菜单设置样式*/
    .tree input:checked + ol {padding-left:14px;height: auto;display: block;}
    .tree input:checked + ol > li { height: auto;}
    /*末层菜单为A标签,设置样式*/
    .tree li.file a{margin:0 -10px 0 -50px;padding: 15px 20px 15px 70px;text-decoration:none;display: block;color:#333333;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;}
    .tree li.file a:hover,li.file a:focus{background-color:#a7a7a7;color:#fff;}
    /*不同层级的菜单字体大小不同*/
    .tree .folderOne{font-size: 18px;}
    .tree .folderTwo{font-size:16px;}
    .tree .folderThree{font-size:14px;}
</style>

<script type="text/javascript">
    $(document).ready(function() {
        //每个有子菜单的菜单项添加点击事件
        $(".tree label").click(function(){
            //获取当前菜单旁边input的check状态
            var isChecked = $(this).next("input[type='checkbox']").is(':checked');
            //展开和收齐的不同状态下更换右侧小图标
            if(isChecked){
                $(this).css(
                    "background-image","url(../images/cp-detail-arrow-b.png)"
                );
            }else{
                $(this).css(
                    "background-image","url(../images/cp-detail-arrow-t.png)"
                );
            }
        });

    });
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="project1.css" />
    <script src="project1.js"></script>
<style type="text/css">
    *{
    margin: 0;
    padding: 0;
}
img{
    border:0;
}
ol, ul ,li{list-style: none;}
a{text-decoration:none }
.nav{width:260px;position: relative;box-sizing: border-box;background: #fff;display: block;margin-left: 20px;}
.nav ul li {margin-left: 20px;color: #fff;background: #31302a;line-height: 65px;border-bottom: 1px solid #ccc;}
.nav ul li: hover {color: #000;background: #fff;}
.nav-one{position: relative;color: #fff;background: #31302a;height:60px;line-height: 60px;padding-left:20px;}
 
.nav-two{position: relative;color: #000;background: #fff;height:45px;line-height: 45px;padding-left:30px;}
.nav-two:hover {color: lightblue;background: #272822;}
.nav-three{position: relative;color: #000;height:40px;line-height: 40px;cursor: pointer;}
.nav ul li ul li {position: relative;color: #000;background: #fff;line-height: 45px;padding-left:30px;}
.nav-two-father{display: none;}
.nav-three-father{display: none;}
</style>
</head>
<body>
   <div class="nav">
       <ul>
           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks(this)">一级类目</a>
               <ul  class="nav-two-father open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="clicks(this)"
                       >二级类目</a>
                       <ul  class="nav-three-father box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
               </ul>
           </li>
           <li>
               <a  href="#"  class="nav-one"
               onclick="clicks(this)">一级类目</a>
               <ul  class="nav-two-father open">
                   <li>
                       <a href="#" class="nav-two"
                       onclick="clicks(this)"
                       >二级类目</a>
                       <ul  class="nav-three-father box">
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                           <li  class="nav-three">三级类目</li>
                       </ul>
                   </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
               </ul>
           </li>
		   <li>
		       <a  href="#"  class="nav-one"
		       onclick="clicks(this)">一级类目</a>
		       <ul  class="nav-two-father open">
		           <li>
		               <a href="#" class="nav-two"
		               onclick="clicks(this)"
		               >二级类目</a>
		               <ul  class="nav-three-father box">
		                   <li  class="nav-three">三级类目</li>
		                   <li  class="nav-three">三级类目</li>
		                   <li  class="nav-three">三级类目</li>
		                   <li  class="nav-three">三级类目</li>
		               </ul>
		           </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
				   <li>
				       <a href="#" class="nav-two"
				       onclick="clicks(this)"
				       >二级类目</a>
				       <ul  class="nav-three-father box">
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				           <li  class="nav-three">三级类目</li>
				       </ul>
				   </li>
		       </ul>
		   </li>
       </ul>
   </div>
<script type="text/javascript">
        function clicks(e)
            {
				console.log(e.nextElementSibling)
                if( e.nextElementSibling.style.display != 'block' ){
                    e.nextElementSibling.style.display = "block" ;
                }
                else{
                    e.nextElementSibling.style.display = "none" ;
                }
            }
</script>
</body>
</html>