JS CHECKBOX选择节点后,子节点也被选中

 <script language="javascript" type="text/javascript">
       function postBackByObject() {
          
           var o = window.event.srcElement;
           if (o.tagName == "INPUT" && o.type == "checkbox") //点击treeview的checkbox是触发
           {
               var d = o.id; //获得当前checkbox的id;
               var e = d.replace("CheckBox", "Nodes"); //通过查看脚本信息,获得包含所有子节点div的id
               var div = window.document.getElementById(e); //获得div对象
               if (div != null)  //如果不为空则表示,存在自节点
               {debugger;
                   var check = div.getElementsByTagName("INPUT"); //获得div中所有的已input开始的标记
                   for (i = 0; i < check.length; i++) {
                       if (check[i].type == "checkbox") //如果是checkbox
                       {
                           check[i].checked = o.checked; //字节点的状态和父节点的状态相同,即达到全选
                       }

                   }

               }
               else  //点子节点的时候,使父节点的状态改变,即不为全选
               {
                   debugger;
                   var divid = o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div

                   var id = divid.id.replace("Nodes", "CheckBox"); //获得根节点的id

                   var checkbox = divid.getElementsByTagName("INPUT"); //获取所有子节点数
                   var s = 0;
                   for (i = 0; i < checkbox.length; i++) {
                       if (checkbox[i].checked)  //判断有多少子节点被选中
                       {
                           s++;
                       }
                   }

                   if (s == checkbox.length)  //如果全部选中 或者 选择的是另外一个根节点的子节点 ,
                   {                               //    则开始的根节点的状态仍然为选中状态
                       window.document.getElementById(id).checked = true;
                   }
                   else {                               //否则为没选中状态
                       window.document.getElementById(id).checked = false;
                   }

               }

           }

       }
    </script>

posted on 2012-02-14 18:15  风夜  阅读(873)  评论(0编辑  收藏  举报