我想通过for循环内嵌一个事件监听,捕获我点击的是哪个个区域,执行对应函数。可是为什么点击第一个或第二个区域,输出都是2呢?
不是应该对应 0 和 1 吗
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>为什么</title>
<style type="text/css">
.container{
width: 100px;
height: 100px;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="container">container1</div>
<div class="container">container2</div>
<script type="text/javascript">
var container = document.getElementsByClassName("container");
console.log(container.length); //2
for (var i = 0; i < container.length; i++) {
container[i].onmouseup = function(){
console.log(i) //2 (不明白为什么,不是应该0或1吗)
}
}
</script>
</body>
</html>
javascript函数,为什么for循环遍历dom节点,监听被点击对象,输出都是一样的呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 当作看不见 2016-10-03 13:14关注
绑定结束时,i的值就是2,跳出循环,这时候i的值就是2,而不是你触发这个事件时,才绑定的,才执行这个函数,而是文档流加载完以后,就一直是2,所以你触发输出i就一直是2,你把两个标签的内容换一下,就能看到,i还是2,但触发标签是不同的
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 idea运行测试代码报错问题
- ¥15 网络监控:网络故障告警通知
- ¥15 django项目运行报编码错误
- ¥15 请问这个是什么意思?
- ¥15 STM32驱动继电器
- ¥15 Windows server update services
- ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
- ¥15 模糊pid与pid仿真结果几乎一样
- ¥15 java的GUI的运用
- ¥15 我想付费需要AKM公司DSP开发资料及相关开发。