学js时做个简单的单击事件,触发的一个问题!
局部代码:
<body>
<h1>111</h1>
<h1>222</h1>
<h1>333</h1>
</body>
var h = document.getElementsByTagName("h1");
for(var i=0;i< h.length;i++){
// 这里我么可以获取到每一个h[i]的,为什么在点击后,会出现一个h[i] 是一个ubdefined ne
// 首先该事件是一个点击后才会触发的事件,但是该循环已经执行完了,也就是说在该代码执行完后,这里的 i = 3;你去点击的时候i为3怎么可能找到该对象呢,所以会出现 h[i] 是一个未定义
// 在这里我们应该使用 this 不管 i 等于什么,this指的是当前被点击的
h[i].onclick = function(){
alert(h[i].innerHTML);
//alert(this.innerHTML);
}
}
网友评论