【问题标题】:Someone please explain this script有人请解释这个脚本
【发布时间】:2013-12-28 21:40:57
【问题描述】:

当我在浏览器中运行以下代码时。

<!DOCTYPE html>
<html>
<body>

    <p>Click the button to loop through a block of code five times.</p>
    <button onclick="myFunction()">Try it</button>
    <p id="demo"></p>

    <script>
        function myFunction()
        {
            var x="";
            for (var i=0;i<5;i++)
            {
                x = x + "The number is " + i + "<br>";
            }
            document.getElementById("demo").innerHTML=x;
        }
    </script>
</body>
</html> 

显示如下

数量为 0 数量为 1 数量为 2 数量是 3 数量是 4 点击“试用”按钮下方。我的问题是这部分代码x=x + "The number is " + i + "&lt;br&gt;";。当它被替换为x="The number is " + i + "&lt;br&gt;"; 时,它只显示
 数字是 4
。有些人请解释为什么会这样。

【问题讨论】:

  • x += 'The number is '+ i +'&lt;br&gt;'
  • 通过一个好的 javascript 教程你会得到更好的帮助。顺便问一下,这是作业吗?

标签: javascript html dom


【解决方案1】:

因为 x 是显示的字符串。在循环的每个增量中,当等号右侧的“x”被保留时,所有旧的“数字是”+i+“
”也被保留。当等号右侧的“x”被删除时,旧字符串将被覆盖,只显示较大的数字 i。

【讨论】:

    【解决方案2】:

    你需要的是一个闭包。在你的 for 循环中,试试这个脚本

         (function(x, i){
            x=x + "The number is " + i + "<br>";
         })(x, i);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-13
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多