老师,为什么btn.innerText=i不会都变成11?
如果这样写:
var i=0;
for(i=1;i<=10;i++){
var btn=document.createElement('button');
btn.innerText=i;
btn.onclick=function(){
alert(i);
};
document.body.appendChild(btn);
}
为什么btn.innerText=i不会都变成11?而alert(i)就都变成11了?
2
收起
正在回答
2回答
同学你好,btn.innerText = i;是直接在循环中进行的,所以i是循环中的值,依次为1-10。
而alert(i);是在绑定的单击事件中的。而点击事件是先绑定后触发,就是绑定的时候i还是1-10,但是单击事件是绑定完才触发的,所以这个时候的i是循环完了之后的值,是11。
希望能帮助到你,欢迎采纳。
祝学习愉快!
热门框架Vue开发WebApp 18版
- 参与学习 人
- 提交作业 209 份
- 解答问题 3299 个
本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星