<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>变量、作用域</title>
</head>
<body>
<button>1</button>
<button>2</button>
<button>3</button>
<script type="text/javascript">
var btns = document.getElementsByTagName('button');
for (var i = 0; i < 3; i++) {
btns[i].onclick = function () {
alert(i + 1);
};
}
//在此处修改代码
</script>
</body>
</html>
热门评论
把for循环的var改为let。作用域的问题
click事件,点击事件是异步的,无论你点击有多快for循环都已经执行了,而且有变量提升,作用域,再去了解一下立即执行函数和闭包,这道题就简单了
当你可以点击按钮的时候,是已经循环完了的,这时候i就等于3了,所以可以这样