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进阶篇
468194 学习 · 21891 问题
相似问题