zoukankan      html  css  js  c++  java
  • 重修理解了一下js 控制treeview 菜单的子级和父级的关系 理解的还不够全 因为 html不够全 但是加个注释吧

     function OnTreeNodeChecked() {
                var ele = event.srcElement;//获得事件的所有属性
                if (ele.type == 'checkbox') //判断事件的type是否是checkbox
                {
                    var childrenDivID = ele.id.replace('CheckBox', 'Nodes');//事件的id中checkbox用nodes代替
                    var div = document.getElementById(childrenDivID);
                    if (div != null) //判断是否有子集
                    {
                        var checkBoxs = div.getElementsByTagName('INPUT');//获得所有的子集
                        for (var i = 0; i < checkBoxs.length; i++) 
                        {
                            if (checkBoxs[i].type == 'checkbox')//判断其type是否为checkbox 
                            {
                                checkBoxs[i].checked = ele.checked;//将子集的checkbox状态设定为何父级的checkbox的状态一致
                            }
                        }
                    }
                    OnTreeNodeChildChecked(ele);
    
                }
            }
            function OnTreeNodeChildChecked(ele) {
                //自动处理上级 
                try {
                    var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;//获得其id
    
                    var parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
                    if (parentChkBox != null) //和上面那句判断是否有父级
                    {
                        var ChildsChkAll = true;//设置一个变量 为true
                        var Boxs = parentDiv.getElementsByTagName('INPUT');
                        var m = 0;
                        var n = 0;
                        for (var i = 0; i < Boxs.length; i++) {
    
                            if (Boxs[i].type == 'checkbox') {
                                m++;
                            }
                            if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
                                n++
                            }
                        }
                        if (m == n)//判断同级中是否都未选中 
                        {
    
                            ChildsChkAll = false;
                        }
                        parentChkBox.checked = ChildsChkAll; //父级的选中状态为ChildsChkAll
                        OnTreeNodeChildChecked(parentChkBox);
                    }
                }
                catch (e) {
    
    
                }
            } 
  • 相关阅读:
    Mvc 简单分页代码
    算法
    atx
    Java8函数式编程(A)
    axios
    props
    vue 的keep alive使用注意项
    android帮助
    testng监听器方法执行顺序
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/haihang/p/2796452.html
Copyright © 2011-2022 走看看