为了账号安全,请及时绑定邮箱和手机立即绑定

ie6下某些元素不能获取到nodeName,什么原因?

ie6下某些元素不能获取到nodeName,什么原因?

慕娘9325324 2019-04-07 09:38:02
无标题页.item{float:left;width:100px;height:100px;margin-left:50px;margin-top:50px;background:#ccc;}#container{overflow:hidden;width:500px;padding-right:50px;border:1pxsolid#000;}window.onload=function(){elems=document.body.childNodes;for(vari=0;i
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

for(vari=0;iif(elems[i].nodeType==1){
elems[i].onclick=function(e){
//triggerElement=e?e.target:event.srcElement;
//alert(triggerElement.nodeName);
alert(this.nodeName);
}
}
}
要加上判断nodeType,因为document.body.childNodes中不仅包括了标签,还有文字。关于node有很多种类型,对应类型码如下。而ElEMENT_NODE才有onclick这个属性,所以TEXT_NODE的节点在onclick时会出错,程序中断了,后面的节点自然无法触发点击事件,所以你会发现LISPANP这几个标签没反应,不信你可以先不修改代码,只把html中这几个标签提前到最前面,看是不是可以触发了。
ELEMENTNODE1
ATTRIBUTENODEDeprecated2
TEXTNODE3
CDATASECTIONNODEDeprecated4
ENTITYREFERENCENODEDeprecated5
ENTITYNODEDeprecated6
PROCESSINGINSTRUCTIONNODE7
COMMENTNODE8
DOCUMENTNODE9
DOCUMENTTYPENODE10
DOCUMENTFRAGMENTNODE11
NOTATION_NODEDeprecated12
                            
查看完整回答
反对 回复 2019-04-07
?
阿晨1998

TA贡献2037条经验 获得超6个赞

//在这里加一个判断
if(elems[i].nodeType===1){
elems[i].onclick=function(e){
//triggerElement=e?e.target:event.srcElement;
//alert(triggerElement.nodeName);
alert(this.nodeName);
}
}
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 467 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信