无标题页.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中这几个标签提前到最前面,看是不是可以触发了。ELEMENTNODE1ATTRIBUTENODEDeprecated2TEXTNODE3CDATASECTIONNODEDeprecated4ENTITYREFERENCENODEDeprecated5ENTITYNODEDeprecated6PROCESSINGINSTRUCTIONNODE7COMMENTNODE8DOCUMENTNODE9DOCUMENTTYPENODE10DOCUMENTFRAGMENTNODE11NOTATION_NODEDeprecated12
阿晨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);}}
添加回答
举报
0/150
提交
取消