jcfc
2016-07-16 12:00
<!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>
你好!
你的本意是要每间隔一秒数字加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>
因为你js写在了id=”count“的输入框的前面,document.getElementById('count')返回是null
http://www.imooc.com/qadetail/151566
你可以参考上面的, 是同一个问题,但还没有答案。定义函数startCount()后,需要有一个事件是触发这个函数,但是在函数定义之外调用不知道为什么不起作用,比如你15行的代码,但要是换成一个延时操作(setTimeout(startCount,0)或onclick事件就起作用了
setTimeout("startCount",1000);里startCount没加“()”
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题