課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
為什么5秒沒有變成4,3,2,1……?
2016-07-14
源自:JavaScript進(jìn)階篇 8-17
正在回答
你的錯(cuò)誤在于你的js位置寫錯(cuò)了,你在js里獲取id為timer這個(gè)元素的時(shí)候,瀏覽器并沒有解析到html的位置,所以它沒獲取到timer,你把js放在html后面就可以了,如下:
<!DOCTYPE html><html><head> ? ?<title>瀏覽器對(duì)象</title> ? ?<meta charset="utf-8"/> ? ?<meta http-equiv="Content-Type" content="text/html; charset=gkb"/></head><body><!--先編寫好網(wǎng)頁(yè)布局--><h1>操作成功</h1><span id="timer">5</span><span>秒后回到主頁(yè)</span><a href="javascript:back();">返回</a></body><script type="text/javascript"> ? ?//獲取顯示秒數(shù)的元素,通過定時(shí)器來更改秒數(shù)。 ? ?var num=document.getElementById("timer").innerHTML; ? ?function count(){ ? ? ? ?num--; ? ? ? ?document.getElementById("timer").innerHTML=num; ? ? ? ?if(num==0){ ? ? ? ? ? ?window.location.assign("http://idcbgp.cn"); ? ? ? ?} ? ?} ? ?setInterval("count()",1000); ? ?//通過window的location和history對(duì)象來控制網(wǎng)頁(yè)的跳轉(zhuǎn)。 ? ?function back(){ ? ? ? ?window.history.go(-1); ? ?}</script></html>
這個(gè)跟你的代碼沒什么關(guān)系,你拿到自己的編輯器上打開就可以正常運(yùn)行了,2樓的說法不敢茍同,變量的位置決定的是它的作用域,在這里把timer當(dāng)做全局變量是可以的,它不影響程序的正常運(yùn)行
把 var num=document.getElementById("timer").innerHTML;這行代碼放到function(){}里面?
要執(zhí)行這個(gè)方法,把變量定義在方法內(nèi)
把setInterval("count()",1000);放在函數(shù)內(nèi),跟在if語(yǔ)句的后面,應(yīng)該就可以了
舉報(bào)
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁(yè)動(dòng)態(tài)交互世界
1 回答請(qǐng)問我的哪里不對(duì)?
7 回答請(qǐng)問我哪里寫的不對(duì)
4 回答請(qǐng)問我的代碼哪里錯(cuò)了
2 回答請(qǐng)問我寫的代碼哪里錯(cuò)了?
2 回答請(qǐng)問我哪里寫得不對(duì)?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-07-14
你的錯(cuò)誤在于你的js位置寫錯(cuò)了,你在js里獲取id為timer這個(gè)元素的時(shí)候,瀏覽器并沒有解析到html的位置,所以它沒獲取到timer,你把js放在html后面就可以了,如下:
<!DOCTYPE html>
<html>
<head>
? ?<title>瀏覽器對(duì)象</title>
? ?<meta charset="utf-8"/>
? ?<meta http-equiv="Content-Type" content="text/html; charset=gkb"/>
</head>
<body>
<!--先編寫好網(wǎng)頁(yè)布局-->
<h1>操作成功</h1>
<span id="timer">5</span>
<span>秒后回到主頁(yè)</span>
<a href="javascript:back();">返回</a>
</body>
<script type="text/javascript">
? ?//獲取顯示秒數(shù)的元素,通過定時(shí)器來更改秒數(shù)。
? ?var num=document.getElementById("timer").innerHTML;
? ?function count(){
? ? ? ?num--;
? ? ? ?document.getElementById("timer").innerHTML=num;
? ? ? ?if(num==0){
? ? ? ? ? ?window.location.assign("http://idcbgp.cn");
? ? ? ?}
? ?}
? ?setInterval("count()",1000);
? ?//通過window的location和history對(duì)象來控制網(wǎng)頁(yè)的跳轉(zhuǎn)。
? ?function back(){
? ? ? ?window.history.go(-1);
? ?}
</script>
</html>
2016-07-14
這個(gè)跟你的代碼沒什么關(guān)系,你拿到自己的編輯器上打開就可以正常運(yùn)行了,2樓的說法不敢茍同,變量的位置決定的是它的作用域,在這里把timer當(dāng)做全局變量是可以的,它不影響程序的正常運(yùn)行
2016-07-14
把 var num=document.getElementById("timer").innerHTML;這行代碼放到function(){}里面?
要執(zhí)行這個(gè)方法,把變量定義在方法內(nèi)
2016-07-14
把setInterval("count()",1000);放在函數(shù)內(nèi),跟在if語(yǔ)句的后面,應(yīng)該就可以了