<script type="text/javascript">
function OnTreeNodeChecked() {
    var ele = event.srcElement;
    if (ele.type == 'checkbox') {
        var childrenDivID = ele.id.replace('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')
                    checkBoxs[i].checked = ele.checked;
            }
        }
        OnTreeNodeChildChecked(ele);
    }
}function OnTreeNodeChildChecked(ele) {
    //自动处理上级
    var parentDiv = ele.parentElement.parentElement.parentElement.parentElement.parentElement;
    var parentChkBox = document.getElementById(parentDiv.id.replace('Nodes', 'CheckBox'));
    if (parentChkBox != null) { 
        var ChildsChkAll = true;
        var Boxs = parentDiv.getElementsByTagName('INPUT');
        for (var i = 0; i < Boxs.length; i++) {
            if (Boxs[i].type == 'checkbox' && Boxs[i].checked == false) {
                ChildsChkAll = false;
            }
        }
        parentChkBox.checked = ChildsChkAll;
        OnTreeNodeChildChecked(parentChkBox);
    }
}
这样写行吗

解决方案 »

  1.   

    demo
    <html>
    <head>
    <title>Hello, jQuery World!</title>
    <script>
        function checkChild(name){
            var childobj=document.getElementsByName(name);
            for(var i=0;i<childobj.length;i++){
                childobj[i].checked=document.getElementById(name).checked;
            }
        }
    </script>
    </head><body>
    <input id="chk1" type="checkbox" value="parent" onclick="checkChild('chk1');"/>
    <input name="chk1" type="checkbox" value="child1" />
    <input name="chk1" type="checkbox" value="child2" />
    <input name="chk1" type="checkbox" value="child3" /></body>
    </html>
      

  2.   

    parentElement 最好改成 parentNode parentElement在ff中不支持
      

  3.   

    判断父节点是否是checkbox obj.parentNode.tagName!=input