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

来源:8-17 编程练习

kevine099

2016-04-14 13:41

<!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回答

  • 新人沈琦斌
    2016-04-17 16:27:04

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

    kevine... 回复新人沈琦斌

    本来就是啊,倒计时不就是这个意思吗?5秒之后自动跳转,或者之前你自己点击了“返回”跳转

    2016-04-17 18:59:25

    共 3 条回复 >

  • kevine099
    2016-04-14 13:59:32

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

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468786 学习 · 22562 问题

查看课程

相似问题