为什么不能直接调用startCount();

来源:8-5 计时器setTimeout()

毛线球_hh

2015-10-09 14:21

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
  var num=0;
  function startCount() {
    document.getElementById('count').value=num;
    num=num+1;
    setTimeout("startCount()",1000);
  }
  startCount();
  //setTimeout("startCount()",0);
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>

写回答 关注

2回答

  • Y_du
    2015-10-09 15:19:23
    已采纳
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>计时器</title>
    </head>
    
    </head>
    <body>
    <form>
        <input type="text" id="count" value="" />
    </form>
    <script type="text/javascript">
      var num=0;
      function startCount() {
        document.getElementById('count').value = num;
        num=num+1;
        setTimeout("startCount()",1000); 
      }
      startCount();
    </script>
    </body>
    </html>

    原因是你程序一开始就被执行。系统还没有获取到input这个标签。导致document.getElementById('count').value这报错。

    Y_du 回复qq_普通人...

    可以的,因为它还有没有哪个对象。

    2015-10-10 09:45:05

    共 3 条回复 >

  • fishfishmanman
    2015-10-09 15:05:08

    把startCount();改成setTimeout(startCount,1000);就能执行了···具体我也不知道为什么··· 

    qq_普通人... 回复Y_du

    如果将1000改成0就是立即执行了?如果是和直接调用startCount()有什么区别?

    2015-10-09 22:12:36

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467382 学习 · 21877 问题

查看课程

相似问题