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

为什么不显示

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


正在回答

4 回答

你好!

你的本意是要每间隔一秒数字加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>



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

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


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

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

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

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

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

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468263    人
  • 解答问题       21891    个

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

进入课程

为什么不显示

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