一级菜单 二级菜单的联动

1.页面代码:单个集合循环生成一级和二级菜单

/* <c:forEach var="m" items="${list}" >
                              <c:if test="${m.mb.father eq \'-1\' }">
                                   <input type="checkbox" value="${m.mb.id }"/>${m.mb.name }<br/>
                                   <c:forEach var="l" items="${list}">
                                   <c:if test="${m.mb.id==l.mb.father}">
                                   &nbsp;&nbsp;<input type="checkbox" value="${l.mb.id }"/>${l.mb.name }<br/>
                                   </c:if>
                                   </c:forEach>
                              </c:if>
                         </c:forEach> */

/**
 * 全选   点击一级菜单     全选二级菜单
 * 重要思想       需要二级菜单有一个值表明当前二级菜单属于哪一个一级菜单
 *
 */
function father(id){    //调用方法是传入当前菜单的id
    var str = "child"+id; //二级菜单id    
    var father = document.getElementById("father"+id);//获取以及菜单id
    var flag = father.checked;//判断以及菜单是否选中
           var menus=document.getElementsByName("menuid");//获取所有菜单id
           for(i=0;i<menus.length;++i){//遍历
               var menu = menus[i];
               if(menu.id==str){//判断      是否属于当前一级菜单的二级菜单
                   menu.checked=flag;//属于          一级选中    则二级选中
               }
           }          
}


/**
 * 点击二级菜单      一级菜单点选
 * 重要思想:   假设二级菜单有兄弟菜单     取消或选中兄弟菜单不会对点选的一级菜单有所影响
 */
function son(id){  //传入当前二级菜单的一级菜单的id
    var flag = false;//提供一个标识符
    var father = "father"+id;//一级菜单的id
    var child = "child" + id;//二级菜单 的id
    var menus=document.getElementsByName("menuid");    //获取所有菜单信息   对菜单信息进行遍历
           for(i=0;i<menus.length;++i){
               var menu = menus[i];
               if(menu.id==child){//判断是否有兄弟菜单       有兄弟菜单    进入判断
                  flag=true;
                  
               }
           }
    father = document.getElementById(father);//获取一级菜单id
    father.checked=flag;//一级菜单选中
    
    }

2.获取数据的servlet代码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyggp.html