非工作代码:
<html>
<body>
<p id="timeCountBar">-></p>
<script>
var timeCountBarText = document.getElementById("timeCountBar").innerHTML;
function subCount(){
timeCountBarText="-"+timeCountBarText;
document.getElementById('timeCountBar.innerHTML').innerHTML=timeCountBarText;
}
function countTime(){
for (int i; i < 100; i++){
setTimeout("subCount",10);
}
//something to do after counting has ended
}
countTime();
</script>
</body>
</html>
只显示->
而没有其他事情发生。
我该怎么办?
答案 0 :(得分:1)
你有两个主要问题。
通过查看浏览器中的JavaScript控制台,可以轻松发现第一个。
JavaScript不是JavaScript,int
应为var
。
第二个是setTimeout
没有睡觉。您需要使用subCount
递归拨打setTimeout
或使用setInterval
而不是使用for循环。
答案 1 :(得分:1)
解决:
HTML:
<p id="timeCountBar">-></p>
JavaScript的:
var timeCountBarText = document.getElementById("timeCountBar").innerHTML;
var sc = setInterval(function(){subCount()}, 10);
var i=0;
var subCount = function() {
timeCountBarText = "-" + timeCountBarText;
document.getElementById('timeCountBar').innerHTML = timeCountBarText;
i=i+1;
if(i==100){
clearInterval(sc);
}
}
你可以看到它在这里工作: http://jsfiddle.net/aniruddha153/Ezres/
你有3个问题:
逻辑并不完全正确。
您不应使用setTimeout
。相反,您应该使用setInterval
。并且声明setInterval的正确方法是
setInterval(function(){subCount()}, 10);
您需要使用clearInterval