5秒后跳转页面。但是秒数不变化,不知道哪里有问题?

<body>

  <h2>操作成功</h2>

  <p><span id="s">5</span>秒后回到主页<a href="javascript:back()">返回</a></p><!--先编写好网页布局-->

  <script type="text/javascript">  

var scd=document.getElementById("s").innerHTML; 

var scd=5;

function sd()

 {scd--;

  setInterval(sd,1000);

    if (scd==0)

     {i=setInterval(sd,1000);

         clearInterval(i);

      location.replace("http://www.imooc.com/");

      }

 }

   //获取显示秒数的元素,通过定时器来更改秒数。

 function back()

 {window.history.go(-1);}

   //通过window的location和history对象来控制网页的跳转。

   

 </script> 

</body>


mk_落叶_363253147
浏览 1458回答 4
4回答

指创生活

你好,看了你的代码小白我做了下面的修改;<html> <head> <meta charset="utf-8"> </head> <body>   <h2>操作成功</h2>   <p><span id="s">5</span>秒后回到主页<a href="javascript:back()">返回</a></p><!--先编写好网页布局-->   <script>     var scd=document.getElementById("s").innerHTML;     function sd() {    var o=document.getElementById("s");     i= setInterval("sd()",1000);    o.innerHTML=scd      if (scd==1){          clearInterval(i);       location.replace("http://www.imooc.com/");       }    scd--;    }    //获取显示秒数的元素,通过定时器来更改秒数。  function back(){   window.history.go(-1); } sd();    //通过window的location和history对象来控制网页的跳转。      </script>  </body> </html>针对你写的代码 不运行的原因 小白认为有五点:你的函数 function sd() 根本都没运行吗... 对吧.   你应该在末尾加上一个sd();var scd=document.getElementById("s").innerHTML; var scd=5;你都通过变量scd 获取了id为s 的值 为什么还要   写这句var scd = 5 呢  3. setInterval(sd,1000);  的用法错了.   我记得是   setInterval("sd()",1000);   记住有双引号 和 大括号 "sd()";4.你应该是想做个倒数吧, scd--  这样可不行哦; 还得输出出来给用户看见的所以增加一个document.getElementById("s").innerHTML = scd ; 5.你给的变量名 感觉是乱起的 .. 最好就是规范同一 用英文名缩写;还有分行什么的 自己看的舒服 别人也看的舒服 . 就这样吧 加油~

qq_慕UI9367020

不会就多思考,简单的问题还随便就问人反而不是最好的办法

LHammer

建议你把要调用的函数放在定时器外部 var i = setInterval(sd,1000);function sd(){        scd--;        document.getElementById("s").innerHTML = scd;        if (scd==0)         {              clearInterval(i);              location.replace("http://www.imooc.com/");         } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript