如何将增量变量集成到段落中

时间:2017-12-18 16:17:12

标签: javascript html

我正试图制作一个闲置的游戏而不是 candy box。我会在页面的一侧有一个数字,每秒上升一个。但是,下面显示的代码似乎不起作用。谁能告诉我它为什么不起作用;如何解决它以及从哪里获取信息。提前谢谢。

<script type="text/javascript">
 var i = 0;

 function increment(){
    i++;
    document.getElementById('money').innerHTML = i;
 }

 setInterval(increment(), 1000);
</script> 
        <h2><u>The best game of the century</u></h2>
        <p>you have &#163;<span id="money"></span>.</p>
    </body>
</html>

2 个答案:

答案 0 :(得分:4)

您有两个问题:

  1. 您在呈现DOM之前调用脚本,因此在脚本运行时,没有ID为money的元素。
  2. setInterval来电中,您只需要没有括号的函数名称(increment)。包括括号(如increment())仅在该特定时刻调用函数,而不是引用它以在每个间隔调用。 (有关详细信息,请参阅the Microsoft page on setInterval。)
  3. 请参阅此代码:

    <h2><u>The best game of the century</u></h2>
    <p>you have &#163;<span id="money"></span>.</p>
    
    <script type="text/javascript">
      var i = 0;
    
      function increment() {
        i++;
        document.getElementById('money').innerHTML = i;
      }
    
      setInterval(increment, 1000);
    </script>

答案 1 :(得分:3)

setInterval(increment(), 1000);更改为setInterval(increment, 1000);

它不起作用,因为根据文件https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval 它需要一个函数引用来执行..但是像这样调用函数increment()只执行一次,并且将使用该函数的返回值,该函数将为null并且不希望这样清除它

&#13;
&#13;
var i = 0;

 function increment(){
    //console.log(i);
    i++;
    document.getElementById('money').innerHTML = i;
 }

 setInterval(increment, 1000);
&#13;
<h2><u>The best game of the century</u></h2>
        <p>you have &#163;<span id="money"></span>.</p>
&#13;
&#13;
&#13;

相关问题