直接调用这个函数不可以吗?为什么没反应。

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

qq_梦里梦到醒不来的梦丶_03363152

2017-05-25 13:33

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>计时器</title>

<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>


写回答 关注

4回答

  • 木槿111
    2017-06-02 22:49:10

    window.onload=function(){

        startCount();

    }


  • 木槿111
    2017-06-02 22:37:00

    onload=startCount()

  • 今世缘0
    2017-05-25 19:51:42

    代码从上到下运行的时候,运行到13行,跳进去函数里面,发现.getElementById()这个根本行不通,因为输入框是在<body>里面的,还没被运行到,所以它辨别不出来,因此函数就停在了这里;但是当我们在13行用的是setTimeout("startCount()",1000)时,它会在1秒之后才执行函数,这个时候它代码已经跑过了<body>那里(程序运行速度很快的),所以当它达到1秒之后开始执行函数的时候就不会报错了,可以顺利执行。

  • kisskill44811
    2017-05-25 14:50:43

    js的位置不对 放到body结束标签前 或者在页面加载完成后执行 window.load

JavaScript进阶篇

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

468190 学习 · 21891 问题

查看课程

相似问题