4-5练习

来源:4-5 编程练习

hope是希望的意思啦

2018-03-13 18:02:02

我按照问答里其他前辈说的方法用匿名函数写,为什么一打开页面就自动alert出了1、2、3。请问这个方法是我哪儿写错了吗?

<!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);

        })(i);

    }

    </script>

</body>

</html>



写回答

1回答

小丸子爱吃菜

2018-03-13

上面的写法还是会在i在循环完成的时候被赋值成了3,当循环完后再去点击每个按钮,还是打印的是4,因为你alert(i+1)了

可以参考下面的代码。

http://img.mukewang.com/climg/5aa7a57600019fc813450412.jpg

祝学习愉快!

0
hope是希望的意思啦
h 非常感谢!
h018-03-13
共1条回复

0 学习 · 4826 问题

查看课程