IE8中使用很好,但在火狐浏览器中这段代码为什么不能用?
一下这段代码是进行TreeView选中某节点后,就能选中其下面的所有子节点的javascript代码。这段代码在IE中使用是没有任何问题的,但在火狐中使用就不能选中打钩节...
一下这段代码是进行TreeView选中某节点后,就能选中其下面的所有子节点的javascript代码。这段代码在IE中使用是没有任何问题的,但在火狐中使用就不能选中打钩节点的子节点。请高人指教:
//选择树形结构的检测
function selectCheck(obj) {
var els = event.srcElement; //获取当前事件的对象
if (els.type == 'checkbox') {
var divId = els.id.replace('CheckBox', 'Nodes'); //获取子节点的层Id
var divObj = document.getElementById(divId); //获取层对象
if (divObj == null) return;
var checkBoxs = divObj.getElementsByTagName('input'); //获取层下所有input 控件
for (var i = 0; i < checkBoxs.length; i++) {
if (checkBoxs[i].type == 'checkbox') //控件为checkbox
{
checkBoxs[i].checked = els.checked; //设置复选框状态
}
}
}
} 展开
//选择树形结构的检测
function selectCheck(obj) {
var els = event.srcElement; //获取当前事件的对象
if (els.type == 'checkbox') {
var divId = els.id.replace('CheckBox', 'Nodes'); //获取子节点的层Id
var divObj = document.getElementById(divId); //获取层对象
if (divObj == null) return;
var checkBoxs = divObj.getElementsByTagName('input'); //获取层下所有input 控件
for (var i = 0; i < checkBoxs.length; i++) {
if (checkBoxs[i].type == 'checkbox') //控件为checkbox
{
checkBoxs[i].checked = els.checked; //设置复选框状态
}
}
}
} 展开
1个回答
展开全部
尊敬的用户,您好!很高兴为您答疑。
您的问题在于:在IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性。
故而
var els = event.srcElement;
应该改为
var els=event.srcElement || event.target;
实现此类遍历子节点的功能,强烈推荐引入jQuery框架,如果因为项目原因无法使用,请您参考阅读:IE的event.srcElement和Firefox的event.target。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询