 
		LFWen
2016-09-29 14:33
var num=0;
  function startCount() {
    document.getElementById('count').value=num;
    num=num+1;
    setTimeout("startCount()", 1000); 
  }
  startCount();
这样写有什么错误?
 
				这样写理论上来说是没错的,但你忽略了个问题,就是里面有句document.getElementById('count').value=num;
这个是要取得html中的元素,而这时页面元素还没加载进来,脚本语言就出错了,当然没值显示(原因是html先执行顺序从上到下,在这里,先执行head再执行body中的内容),如果你硬要这么写的话,写在onload="function"对应的函数里吧(文档加载完毕后执行)!看代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
function load(){
  var num=0;
  function startCount() {
    document.getElementById('count').value=num;
    num=num+1;
    window.setTimeout(startCount,1000);
  }
  startCount();//这句启动不来原因是文档还没加载完毕,放在onload后执行
}
  
</script>
</head>
<body onload="load()">
<form>
<input type="text" id="count" />
</form>
</body>
</html> 
				按道理来讲,也是可以运行的,要是运行不起来,可能是哪块大小写写错了。
 
				num的值会一直叠加下去吧,因为num的赋值在函数外面,调用函数时不会将num清空。
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题