為什么i--后直接變為0?
<!DOCTYPE html>
<html>
?<head>
? <title>瀏覽器對象</title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=gkb"/> ??
?</head>
?<body>
? <!--先編寫好網頁布局-->
? <h1>操作成功</h1>
? <p><span id="span"></span>秒后回到主頁<a onclick="B_back()">返回</a></p>
?
? <script type="text/javascript"> ?
?
? ?//獲取顯示秒數的元素,通過定時器來更改秒數。
? ?// setTimeout(B_back,5000);
? ?// function B_back(){
? ?// ? ? history.back();
? ?// }
? ?//讓秒數從5遞減到0
? ?i=5;
? ?document.getElementById("span").innerHTML=i;
? ?function changeSecond(){
? ?i--;
? ?document.getElementById("span").innerHTML=i;
? ?}
? ?for(a=0;a<5;a++){
? ?setTimeout(changeSecond,2000);
? ?}
? ?//通過window的location和history對象來控制網頁的跳轉。
?</script>?
</body>
</html>
原先設想是讓秒數從5逐漸遞減到0,但是實際運行時,秒數經過2000毫秒后立馬從5變為0
2017-07-16
for(a=0;a<5;a++){
? ?setTimeout(changeSecond,2000);
? ?}
這里相當于連續五次執行計時器?
是連續五次調用changeSecond()函數
所以i等于0
這是我寫的 希望對你有幫助
<script >
?var num = 5
? document.getElementById("span").innerHTML = num
? ?function change(){
? ? ? ?num--;
? ? document.getElementById("span").innerHTML = num;
? ? if(num==0){
? ? ? ? window.open('http://www.xianlaiwan.cn','_top');
? ? }
? ? ?setTimeout("change()",1000);
? ?}
? ?setTimeout("change()",1000);
</script>
2017-07-16