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