js实现权限树的更新权限时的全选全消功能


Posted in Javascript onFebruary 17, 2009
// JScript 文件 
function getParentByTagName(element,tagName) 
{ 
var parent = element.parentNode; 
var upperTagName = tagName.toUpperCase(); 
while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
{ 
parent = parent.parentNode ? parent.parentNode : parent.parentElement; 
} 
return parent; 
} 
function setParentChecked(objNode) 
{ 
var objParentDiv = getParentByTagName(objNode,"div"); 
if(objParentDiv == null || objParentDiv == "undefined") 
return; 
var objID = objParentDiv.getAttribute("ID"); 
var objParentCheckBox = document.getElementById(objID.replace("Nodes","CheckBox")); 
if(objParentCheckBox == null || objParentCheckBox == "undefined") 
return; 
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox") 
return; 
//add 
// if (objNode.checked=false) objPraentCheckBox.checked=false; 
// objParentCheckBox.checked = true; 
setParentChecked(objParentCheckBox); 
} 
function setParentUnChecked(objNode) 
{ 
var objParentDiv = getParentByTagName(objNode,"div"); 
if(objParentDiv == null || objParentDiv == "undefined") 
return; 
var objID = objParentDiv.getAttribute("ID"); 
var objParentCheckBox = document.getElementById(objID.replace("Nodes","CheckBox")); 
if(objParentCheckBox == null || objParentCheckBox == "undefined") 
return; 
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox") 
return; 
//add 
// if (objNode.checked=false) objPraentCheckBox.checked=false; 
objParentCheckBox.checked = false; 
setParentUnChecked(objParentCheckBox); 
} 
function setChildCheckedState(div,state) 
{ 
var objchild = div.childNodes; 
var count = objchild.length; 
for(var i=0;i<objchild.length;i++) 
{ 
var tempObj = objchild[i]; 
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox") 
{ 
tempObj.checked = state; 
} 
// debugger; 
setChildCheckedState(tempObj,state); 
} 
} 
function TreeNodeChecked() 
{ 
var objNode = window.event.srcElement; 
if(objNode.tagName!="INPUT" || objNode.type!="checkbox") 
return; 
// debugger; 
if(objNode.checked == true) 
{ 
setParentChecked(objNode); 
} 
else 
{ 
setParentUnChecked(objNode); 
} 
var objID = objNode.getAttribute("ID"); 
var objParentDiv = document.getElementById(objID.replace("CheckBox","Nodes")); 
if(objParentDiv==null || typeof(objParentDiv) == "undefined") 
return; 
setChildCheckedState(objParentDiv,objNode.checked); 
} 
function SetTreeNodeChecked(objNode1) 
{ 
var objNode =objNode1; 
var objID = objNode.getAttribute("ID"); 
var objParentDiv = document.getElementById(objID.replace("CheckBox","Nodes")); 
if(objParentDiv==null || typeof(objParentDiv) == "undefined") 
return; 
setChildCheckedState(objParentDiv,objNode.checked); 
} 
function GetYHQS(id) 
{ 
PageMethods.CallYHQX(id,callsuccessed); 
} 
function callsuccessed(result) 
{ 
// //循环页面 
//debugger; 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
objNode.checked=false; 
} 
} 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
//找到 
//比较 
if (result.indexOf(objNode.title)!=-1) 
{ 
objNode.checked=true; 
SetTreeNodeChecked(objNode); 
} 
} 
} 
} 
function test() 
{ 
debugger; 
//循环页面 
for (i=0;i<document.form1.length ;i++) 
{ 
var objNode=document.form1.elements[i]; 
if (objNode.tagName=="INPUT" && objNode.type=="checkbox") 
{ 
//找到 
//比较 
objNode.checked=true; 
} 
} 
}
Javascript 相关文章推荐
用js解决数字不能换行问题
Aug 10 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
May 17 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 12 Javascript
vscode中Vue别名路径提示的实现
Jul 31 Javascript
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 #Javascript
JSON扫盲帖 JSON.as类教程
Feb 16 #Javascript
动态为事件添加js代码示例
Feb 15 #Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
Feb 15 #Javascript
javascript Ext JS 状态默认存储时间
Feb 15 #Javascript
Javascript 获取链接(url)参数的方法
Feb 15 #Javascript
JavaScript 获得选中文本内容的方法
Feb 15 #Javascript
You might like
php 字符串替换的方法
2012/01/10 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
Python最长公共子串算法实例
2015/03/07 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
Django 限制访问频率的思路详解
2019/12/24 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
包装类的功能、种类、常用方法
2012/01/27 面试题
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
领导干部对照检查材料
2014/08/24 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
Mysql 用户权限管理实现
2021/05/25 MySQL
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL
用JS创建一个录屏功能
2021/11/11 Javascript