JS TreeView实现复选框联动

 <script language="javascript" type="text/javascript">      function window.onload() {     document.getElementById("TreeView1").onclick = OnTreeNodeChecked;//这里把TreeView名改一下~ }

function OnTreeNodeChecked() {     var ele = event.srcElement;
    if(ele.type=='checkbox')     {         ele.className = "";   
        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;             }         }         setParentClassName(ele);     } }

function setParentClassName(currCheckBox) {     var objParentNode= public_GetParentNode(currCheckBox);     if(public_IsObjectNull(objParentNode))         return;     var checkBoxs = objParentNode.getElementsByTagName("INPUT");     var allSelect = true;     var allUnSelect = true;     for(var i=0;i<checkBoxs.length;i++)     {
        if(checkBoxs[i].type=='checkbox')         {             if(checkBoxs[i].checked) allUnSelect = false;             else allSelect = false;             if((!allSelect) && (!allUnSelect)) break;         }     }     var objParentCheckBox = public_Node2CheckBox(objParentNode);     if(public_IsObjectNull(objParentCheckBox)) return;     setParentClassName(objParentCheckBox);     if(allSelect)     {         objParentCheckBox.className = "";         objParentCheckBox.checked = true;         return;     }     if(allUnSelect)     {         objParentCheckBox.className = "";         objParentCheckBox.checked = false;         return;     }     objParentCheckBox.checked = false;     objParentCheckBox.className = "parentbox_style"; }

//得到本节点所在的Node(Div对象) function public_GetParentNode(element)
{     var parent = element.parentNode;     var upperTagName = "DIV";     //如果这个元素还不是想要的tag就继续上溯     while (parent && (parent.tagName.toUpperCase() != upperTagName))     {         parent = parent.parentNode ? parent.parentNode : parent.parentElement;     }     return parent; } function public_Node2CheckBox(element) {     var objID = element.getAttribute("ID");     objID = objID.substring(0,objID.indexOf("Nodes"));     return document.getElementById(objID+"CheckBox"); } function public_IsObjectNull(element) {     if(element==null || element == "undefined")         return true;     else         return false; }

    </script>

posted on 2013-12-23 16:25  hannah_  阅读(266)  评论(0编辑  收藏  举报

导航