为了账号安全,请及时绑定邮箱和手机立即绑定

为什么加载后最先显示的是undefined秒,然后才开始5秒倒计时呢?

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>   
 </head>
 <body>
  <p style="font-size: 24px;font-weight: bold;">操作成功</p>
  <p style="font-size: 20px"><span id="i">5</span>秒后返回&nbsp;<a href="javascript:window.history.back();">返回</a></p>
 
  <script type="text/javascript">  
   clock();
   var j=5;
   function clock(){
      document.getElementById("i").innerHTML=j;
   	  j--;
      if(j==0){window.location.href="http://www.imooc.com/"}
      setTimeout(clock,1000);
   }
    
   //通过window的location和history对象来控制网页的跳转。
   
 </script> 
</body>
</html>

为什么加载后最先显示的是undefined秒,然后才开始5秒倒计时呢?明明我span标签内预先设置了5秒啊??

正在回答

2 回答

想请教你一个问题,j--是j自减,但是如何保证它一秒钟往下减一?谢谢.......

0 回复 有任何疑惑可以回复我~
#1

kevine099 提问者

setTimeout(clock,1000);你设置了呀,1000ms调用一次clock,调用一次clock,j不就自减1吗?
2016-04-17 回复 有任何疑惑可以回复我~
#2

新人沈琦斌 回复 kevine099 提问者

那就是说1000ms调用一次,1000ms才向下减一,实际上是5000ms后才返回主页,是吧?
2016-04-17 回复 有任何疑惑可以回复我~
#3

kevine099 提问者 回复 新人沈琦斌

本来就是啊,倒计时不就是这个意思吗?5秒之后自动跳转,或者之前你自己点击了“返回”跳转
2016-04-17 回复 有任何疑惑可以回复我~

我知道了应该把j=5放在clock()调用前面,否则函数体里中j没有值,所以会出现undefined,若是这样span标签内可以不用写5。

第二种方法就是span标签内写出内容5,然后j=document.getElementById("i").innerHTML,将值赋值给j,然后再进行clock调用

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么加载后最先显示的是undefined秒,然后才开始5秒倒计时呢?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号