刚开始的js 这么写的

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');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;OnTreeNodeChildChecked(parentChkBox);}
}}

  然后 加了个catch 就完事了

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) {//自动处理上级 try{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');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;OnTreeNodeChildChecked(parentChkBox);}
}catch(e){}
} 

转载于:https://www.cnblogs.com/haihang/archive/2012/10/31/2748018.html

调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...相关推荐

  1. C# window forms Treeview checkbox子节点和父节点相互选中的关系

    //全局变量 private bool m_SetClick = true; //树的AfterCheck事件 private void recievedPeopletreeView_AfterChe ...

  2. TreeView复选框选择逻辑判断

    在mobile里使用TreeView控件时,控件本身没有提供节点复选框选择判断逻辑. 如选中父节点,所有子节点全部选中: 取消父节点,同时也取消所有子节点: 或者选中所有子节点,父节点自动选中等等. ...

  3. Python 面试问题总结

    一. 进程和线程 1. 简述线程,进程,协程的区别? 线程: 操作系统能够进行运算调度的最小单位. 它包含在进程之中,是进程的实际运作单位. 一条线程指的是进程中一个单一顺序的控制流, 一个进程中可以 ...

  4. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬

    MySQL数据库笔记 第一部分 MySQL基础篇 第01章 数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业 ...

  5. 零基础要如何成为前端工程师?

    如果你是个毫无基础又想要转岗成前端工程师的迷惘初学者,你脑中浮现的第一个问题有八成会是这个.接下来你会做什么?你大概会用:「如何成为前端工程师」.「前端 入门」.「前端 转岗」.「前端 非本科」等等的 ...

  6. 零基础的小明要如何成为前端工程师?

    点击上方"IT平头哥联盟",选择"置顶或者星标" 一起进步- 前言 前端的历史,有点意思,由@胡立分享. 正文从这开始-- 如果你是个毫无基础又想要转岗成前端工 ...

  7. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版(自用不可外传)

    文章目录 MySQL数据库笔记 第一部分 MySQL基础篇 第01章 数据库概述 1. 为什么要使用数据库 2. 数据库与数据库管理系统 2.1 数据库的相关概念 3. RDBMS与非RDBMS 3. ...

  8. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版

    MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版(自用不可外传) 文章目录 MySQL数据库笔记 第一部分 MySQL基础篇 第01章 数据库概述 1. 为什么要使用数据库 ...

  9. U3D面试汇总!!!

    文章目录 篇章一:C#语言核心 0.C#语言特性 1.值类型与引用类型 2.string类型 3.GC(垃圾回收) 4. 面向对象三大特征 5.访问修饰符 6.密封关键字sealed 7. 结构体和类 ...

最新文章

  1. .net framework 4.0安装_Win 7无法安装Microsoft .NET Framework 4.6.2
  2. (一)win7下cocos2d-x 21 + vs2010
  3. c++ 优先队列_std::priority_queue(优先队列)
  4. 7.Hadoop的学习(Hadoop的配置(伪分布式的搭建)-3(启动守护进程))
  5. Nginx+Tomcat windows环境下简单集群搭建
  6. 最优化作业第6章——无约束多维非线性规划方法
  7. Java并发编程面试题(2020最新版)
  8. 整蛊偷快递的家伙!不愧是 NASA 工程师
  9. codevs4203山区建小学
  10. IdentityServer4专题之二:OpenID介绍
  11. Spark报错:Bad response ERROR for block BP-78092257-8.xx-121xxx
  12. 一台电脑安装多个Redis服务
  13. 深入了解preventDefault与stopPropagation
  14. 微软将VB和C#合二为一 年底推出全新平台VS2010
  15. yalmip决策变量
  16. python模拟登录百度贴吧_Python百度贴吧多线程自动登录签到/自动打码
  17. mysql数据库压缩_Mysql压缩解决方案
  18. TensorFlow Probability概率编程-时序模型
  19. html实现自动图片轮播,图片轮播的实现(html__js)
  20. 联想笔记本如何重启计算机,联想电脑总是自动重启怎么处理

热门文章

  1. php sqlsrv 分页,Php+SqlServer如何实现分页显示
  2. C 线程的使用~(上)
  3. 中如何将方形图片转换成圆形图片_【PS】PS中不可不知的实用技巧!你都掌握了吗?...
  4. keyshot环境素材文件_KeyShot渲染,打光这么打,效果倍儿棒
  5. 光纤收发器在高清网络视频监控工程项目中的应用
  6. 家用、商用、工业交换机的用途与区别
  7. 【渝粤教育】电大中专药剂学基础知识_1作业 题库
  8. [渝粤教育] 西南科技大学 高等数学1 在线考试复习资料
  9. 【渝粤题库】陕西师范大学200131中国古代文论 作业(专升本)
  10. 【渝粤题库】广东开放大学 统计基础 形成性考核