您的位置:首页 > Web前端 > JavaScript

js实现权限树的添加权限时的全选全消功能

2009-02-17 15:35 459 查看
08年中旬在公司做一个OA系统的“权限管理”模块,做到权限的选择设定功能时,VS框架里的TreeView控件明显没法自己实现全选全消,在网上找了不少有关的JS源码,都不太好用,功能不全,于是,就自己仿造着写了一个JS,在这里发出来给大家共享。

// 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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: