作死的花生酱
2016-09-04 12:59
<!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;
if(num>=5){
alert("计数结束!");
}else{
setTimeout("startCount()", 1000);
}
}
startCount();
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
1.我在本机测试的时候并没有跑起来,这是浏览器抛出来的错误
Uncaught TypeError: Cannot set property 'value' of null
只有回答才能收藏,右上角的已关注没有什么作用啊。
window.onload = function () {
var num = 0;
function startCount() {
document.getElementById('count').value = num;
num = num + 1;
if (num >= 5) {
alert("计数结束!");
} else {
setTimeout(startCount, 1000);
}
}
startCount();
}
首先 因为你的函数需要获取下面的id=“count”
所以你的整个函数需要用window.onload = function(){} 包裹 ,意思是等文档加载完毕才执行JavaScript;
其次
计时器的表示应该是setTimeout(startCount, 1000);
带()表示立即执行, 而按照你的意思是这个是走到else才会执行计时器,所以不需要();
在你的代码上改的,
1.把 startCount();换成 setTimeout("startCount()", 1000);
2.只有这样它才能调用里面的函数,制造一个向上的循环。第二个 setTimeout("startCount()", 1000);在网页加载出来先被调用一次,然后调用里面那个 setTimeout("startCount()", 1000);
望采纳!
JavaScript进阶篇
468197 学习 · 21891 问题
相似问题