function public_GetParentByTagName(element, tagName)
{
varparent = element.parentNode;
var upperTagName = tagName.toUpperCase()
// この要素が不要な場合まだ必要なタグまでトレースを続けます
while (parent && (parent.tagName.toUpperCase() != upperTagName))
{
parent =parent.parentNode :parent.parentElement ?
}
Returnparent;
}
// ノードの親ノードをチェック済みに設定します - ノードがアクセス可能な場合、その親ノードもアクセス可能である必要があります
function setParentChecked(objNode)
{
var objParentDiv = public_GetParentByTagName(objNode,"div");
if(objParentDiv==null || objParentDiv == "未定義")
{
return; var objID = objParentDiv.getAttribute("ID");
objID = objID.substring(0,objID.indexOf("Nodes"));
objID = objID "CheckBox"; .getElementById(objID);
if(objParentCheckBox==null || objParentCheckBox == "未定義")
{
return;
}
if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
return;
objParentCheckBox.checked = true;
setParentChecked(objParentCheckBox)
}
// このノードの子ノードを非チェックに設定します。アクセスできない場合、その子ノードもアクセスできなくなります。
function setChildUnChecked(divID)
{
var objchild = divID.children;
var count = objchild.length; ;i {
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
, その後、その子ノードも
function setChildChecked(divID)
{
var objchild = divID.children;
var count = objchild.length; for(var i=0 ; i {
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{ Tempobj.chcked = TRUE;
}
Setchildchecked (tempobj);
}
}> // イベントのトリガー
Function Chevent ()
{ var objNode =event.srcElement;
if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
return; 🎜> {
setParentChecked(objNode);
var objID = objNode.getAttribute("ID");
var objID = objID.indexOf("CheckBox"); > var objParentDiv = document.getElementById(objID "Nodes");
if(objParentDiv==null || objParentDiv == "未定義")
{
} return;
}
else
{
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID "Nodes");
if(objParentDiv==null || objParentDiv == "undefined") UnChecked(objParentDiv);
}
}
Server control
Copy code