问答详情
源自:8-5 计时器setTimeout()

为什么不显示

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

</script>

</head>

<body>

<form>

<input type="text" id="count"  />

</form>

</body>

</html>


提问者:jcfc 2016-07-16 12:00

个回答

  • 我要开发地图系统
    2016-07-16 15:48:00

    你好!

    你的本意是要每间隔一秒数字加1,以达到计时的效果;具体的做法就是每隔一秒执行一下函数。

    setTimeout();这个方法是在等到一段时间后执行一次函数,只执行一次;

    setInterval() ;这个方法每隔一段时间就执行一次函数,不断地执行;

        所以,setInterval() ;才符合你的要求;


    <script type="text/javascript">

      var num=0;

      function startCount() {

        document.getElementById('count').value=num;

        num=num+1; 

      }

      setInterval("startCount()",1000);

    </script>



  • 李小子
    2016-07-16 15:41:50

    因为你js写在了id=”count“的输入框的前面,document.getElementById('count')返回是null    


  • weibo_
    2016-07-16 13:51:06

    http://www.imooc.com/qadetail/151566

    你可以参考上面的, 是同一个问题,但还没有答案。定义函数startCount()后,需要有一个事件是触发这个函数,但是在函数定义之外调用不知道为什么不起作用,比如你15行的代码,但要是换成一个延时操作(setTimeout(startCount,0)或onclick事件就起作用了

  • 黄泉大官人3589618
    2016-07-16 12:54:56

      setTimeout("startCount",1000);里startCount没加“()”