写了个TreeView的父子联动的JS,执行的时候,到最顶端JS仍然不能判空,往下就报错 tagName tagname is null or not an object ,改如何修改? 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;
checkBoxs[i].indeterminate = false; }
}
}
GetParentByTagName(ele,'DIV',ele.checked);
}
}
function GetParentByTagName(element, tagName,NodeState)
{
var parent = element.parentNode;
if (parent ==null) // 当是空的时候,并不能正确判断
return;
var upperTagName = tagName.toUpperCase();
{
while (parent && (parent.tagName.toUpperCase() != upperTagName)) //导致这里出现 tagName tagname is null or not an object 错误 为什么会有这种情况发生呢 {
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
}
var checkBoxs = parent.getElementsByTagName('INPUT');
var parentCheckBoxID = parent.id.replace('Nodes','CheckBox');
var parentCheckBox = document.getElementById(parentCheckBoxID);
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
{
parentCheckBox.checked = NodeState;
}
}
GetParentByTagName(parentCheckBox,'DIV',NodeState);
}
{
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;
checkBoxs[i].indeterminate = false; }
}
}
GetParentByTagName(ele,'DIV',ele.checked);
}
}
function GetParentByTagName(element, tagName,NodeState)
{
var parent = element.parentNode;
if (parent ==null) // 当是空的时候,并不能正确判断
return;
var upperTagName = tagName.toUpperCase();
{
while (parent && (parent.tagName.toUpperCase() != upperTagName)) //导致这里出现 tagName tagname is null or not an object 错误 为什么会有这种情况发生呢 {
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
}
var checkBoxs = parent.getElementsByTagName('INPUT');
var parentCheckBoxID = parent.id.replace('Nodes','CheckBox');
var parentCheckBox = document.getElementById(parentCheckBoxID);
for(var i=0;i<checkBoxs.length;i++)
{
if(checkBoxs[i].type=='checkbox')
{
parentCheckBox.checked = NodeState;
}
}
GetParentByTagName(parentCheckBox,'DIV',NodeState);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货