我想要点哪个就弹出来哪个的序号 可是为什么一直弹3呢?
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
div{width: 80px;height: 200px;background-color: #ccc;float: left;margin-left: 10px}
</style>
<script type="text/javascript">
window.onload=function(){
var oDiv=document.getElementsByClassName('div');
for(i=0;i<oDiv.length;i++){
oDiv[i].onclick=function(){
alert(i);
}
}
}
</script>
</head>
<body>
<div class="div"></div>
<div class="div"></div>
<div class="div"></div>
</body>
</html>
出现一直3的原因是由于i声明为全局变量了,在单击之前,循环已经走完,这时候i为3
用let是最简单直接的方法,因为let实现了js的块级作用域,相当于每次的i都是在循环体内的,不受外界影响,循环可以拆解为
升级版