为什么我的代码在第十三行直接写上startCount()可以直接运行,而不用非得写setTimeout(startCount(),1000),大家所担心的说直接写startCount()会由于getElementById()元素在后面,程序会读不到,在我这没出现。谢谢大家

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

简单快乐9

2017-01-06 16:23

<!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;
  }
 StartCount();
</script>
</head>
<body>
<form>
<input type="text" id="count" onclick="startCount()"/>
</form>
</body>
</html>
写回答 关注

2回答

  • 祺妙Tony
    2017-01-06 17:07:50
    已采纳
    1. 按照代码,页面执行完毕,input里面应该会有一个"0",但是并没有,也就是说,13行的这行代码StartCount(),并没有完成他的功能;

    2. 点击input,触发click事件,数字为:0,1,2,3,4……增长

    3. by:帮你测试了一下,网页一打开是会报错的,不过错误不大,没有导致页面崩溃而已:StartCount is not defined;

    简单快乐9

    非常感谢!

    2017-01-09 19:41:05

    共 1 条回复 >

  • 简单快乐9
    2017-01-09 13:42:07

    首先谢谢你的耐心,细致的回答。

    1,程序会报错StartCount() is not defined 是由于我写错了。我定义的是startCount()可是我写成了StartCount()。

    2.您说得:直接写startcount()按照代码,页面执行完毕,input里面应该默认有一个“0”,就是指我点击提交之后,输入框里面就应该有一个数字0,但是并没有,所以startcount并没有被执行。是这样吗?

    祺妙Tony

    是的,程序分为两部分,第一部分,赋值给input,也就是0,第二部分,自加1,但是页面执行完并没有赋值给input,必须要click触发才会赋值0,也就是函数第一次触发执行。

    2017-01-09 21:24:10

    共 1 条回复 >

JavaScript进阶篇

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

469401 学习 · 22585 问题

查看课程

相似问题