为了账号安全,请及时绑定邮箱和手机立即绑定

请问为什么无法实现?

<!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,100);

  }

  startCount();

</script>

</head>

<body>

<form>

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

</form>

</body>

</html>


正在回答

3 回答

这种写法没有问题,问题出在javascript的加载机制上,当你在调用document.getElementById('count').value=num;的时候,下面的input还没加载,所以执行不了。

解决办法就是将整体的script代码块下移到</form>下面。

下面是我改了之后的代码:

<!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" />
</form>
<script type="text/javascript">
   var num=1;
   function startCount() {
       document.getElementById('count').value=num++;
       setTimeout("startCount()",1000);
   }
   startCount();
</script>
</body>
</html>

4 回复 有任何疑惑可以回复我~
#1

乘蓄媛z 提问者

谢谢大牛,可以简单和我介绍下javascript的加载机制顺序或者html加载顺序吗?
2016-08-01 回复 有任何疑惑可以回复我~
#2

乘蓄媛z 提问者

谢谢大牛啦~~
2016-08-01 回复 有任何疑惑可以回复我~
#3

宗晟 回复 乘蓄媛z 提问者

不客气,大家共同进步! HTML的加载顺序是逐行解析,而且遇到JS代码时会立即执行,所以当你有操作元素节点的js代码最好放在body后面
2016-08-01 回复 有任何疑惑可以回复我~
#4

李逍遥lh

不是指执行一次吗
2016-08-14 回复 有任何疑惑可以回复我~
#5

qq_武林新秀_0

多谢啊
2016-08-17 回复 有任何疑惑可以回复我~
#6

王阿阿阿阿阿阿然 回复 宗晟

想问下,把 startCount();换成setTimeout("startCount()",1000); 为什么就不涉及加载机制的问题了,是因为setTimeout是在解析完所有HTML代码之后解析的对么?求解,谢谢啦
2016-08-17 回复 有任何疑惑可以回复我~
查看3条回复

楼上回答的很好

0 回复 有任何疑惑可以回复我~

setTimeout("startCount()",100);,调用函数写法不对,应该是startCount(),并且在settimeout引用的时候加“”

1 回复 有任何疑惑可以回复我~
#1

乘蓄媛z 提问者

也不行噢
2016-08-01 回复 有任何疑惑可以回复我~
#2

宗晟 回复 乘蓄媛z 提问者

我说的那个你可以试试,我刚才也试了好大一会,在浏览器的控制台中发现了报错的地方
2016-08-01 回复 有任何疑惑可以回复我~
#3

宗晟

最原来的那个你可以使用setTimeout("startCount",1000)延迟一秒加载,当html文档加载以后再去调用这个方法就没有问题了
2016-08-01 回复 有任何疑惑可以回复我~
#4

乘蓄媛z 提问者 回复 宗晟

我发现如果使用document.write这样的系统语句好像就不会产生这样的现象,就像你说的一样,当前这种情况,我在获取ID信息如果在后面都会无法实现。
2016-08-01 回复 有任何疑惑可以回复我~
#5

乘蓄媛z 提问者 回复 宗晟

“setTimeout”这个是指在html文档在全部加载完毕以后再调用的吗?
2016-08-01 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

请问为什么无法实现?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信