最近在写一个事件绑定试验,效果是点击链接时,弹出链接的元素名,代码如下:
<html>
<head>
<style>
</style>
</head>
<body>
<a>第一个</a><br/>
<a>第二个</a><br/>
<a>第三个</a></br>
<script>
var link=document.getElementsByTagName("a");
for(var i in link){ //for(var i=0;i<link.length;i++){
if(document.addEventListener){
link[i].addEventListener("click",function(e){alert(e.target.tagName.toLowerCase());},false);
}else{
link[i].attachEvent("onclick",function(){alert(window.event.srcElement.tagName.toLowerCase());});
}
}
</script>
</body>
</html>
Chrome浏览器报错,但是能正确弹出结果,IE7直接报错,无弹出结果。但将遍历link的方式改为图中注释部分时,就没错误了。
难道是for-in不能遍历数组吗?不可能啊。请各位大神指教。不胜感激!