乘蓄媛z
2016-08-01 15:45
<!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>
这种写法没有问题,问题出在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>
楼上回答的很好
setTimeout("startCount()",100);,调用函数写法不对,应该是startCount(),并且在settimeout引用的时候加“”
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题