没感觉这样写有什么问题呢,为什么执行不了

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

garnett555

2016-04-23 19:01

<!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); 
  }
//setTimeout("startCount()",1000) ;  
startCount();
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>

如题,代码如上。

写回答 关注

8回答

  • 慕粉3193552
    2016-04-27 15:47:06
    已采纳

    Javascript代码是顺序执行的,而你在调用startCount的时候还没有加载完,找不到对象ID'count',所以肯定出不来结果。而setTimeout("startCount()",1000) ;因为有延迟,当它调用startCount时,此时代码已经加载完,所以工作起来没什么问题

    真水无香31... 回复真水无香31...

    不过函数里面有个setTimeout()延迟,执行还是达不到直接用两个setTimeout()的效果

    2016-05-04 16:54:54

    共 4 条回复 >

  • 慕移动9181930
    2022-03-29 09:52:37
  • 乖乖小宇宙的围脖
    2016-05-02 09:42:38

    楼上讲的对哦,楼主你可以把script放在body最下面试试,按这样的写法就正确啦

  • qqttttstudent
    2016-04-27 15:42:06

    我也是这样写的 但是一开始执行不起 后来又能执行了 是什么鬼。。不懂

  • 队友挂机我选1V5
    2016-04-24 12:56:22

    因为你的startCount这个函数没有被调用啊····

    garnet...

    调用了呀,在注释的下一行

    2016-04-26 17:49:43

    共 1 条回复 >

  • qq_吃药先森_03169839
    2016-04-24 12:06:08

    你这样写是不能调用函数的,全局函数才可以这样调用,要有输入值返回值,

    这种函数的调用要用window.onload函数,

    你把你的15行改为window.onload=startCount;

    qq_吃药先... 回复garnet...

    因为不是全局函数,无法直接调用

    2016-04-27 11:04:44

    共 4 条回复 >

  • akiaki
    2016-04-24 10:47:42

    感觉好像是因为startCount这个函数调用问题。。。

  • tkkkk
    2016-04-23 19:30:57

    你的第十行写反了吧!num是什么?把它赋值ID为“count”有什么意义?

    garnet...

    再好好看看吧。。。

    2016-04-23 19:35:22

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题