问答详情
源自:8-17 编程练习

求大神解答 为什么我的程序界面那个五秒不动 但是现实时间五秒后还是跳转了 但那个数字为什么不动呢?

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   
 </head>
 <body>
  <!--先编写好网页布局-->
  <h1>操作成功</h1>
  <span id="time">5</span><span>秒后跳转回首页</span><a href="back()">返回</a>
  
 
  <script type="text/javascript">
  var count=document.getElementById("time").innerHTML;
  function counts(){
      count--;
      if(count==0){
          window.location.assign("www.imooc.com");
          
      }}
      setInterval("counts()",1000);
  function back(){
      window.history.back();
  } 
   //获取显示秒数的元素,通过定时器来更改秒数。

   //通过window的location和history对象来控制网页的跳转。
   
 </script> 
</body>
</html>


提问者:qq_微笑向暖_8 2016-04-22 22:31

个回答

  • 一只特立独行的doge
    2016-04-27 22:30:34

    你的没有显示数字的语句啊,只是执行了算法,没有显示结果,所以,数字没有变。

  • ime2016
    2016-04-25 22:57:22

    修改后的代码,你的疑惑都在代码后的注释里;

    <!DOCTYPE html>
    <html>
     <head>
      <title>浏览器对象</title>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <!--这里记住修改为UTF-8,不要是GBK,不然是乱码中文-->  
     </head>
     <body>
      <!--先编写好网页布局-->
      <h1>操作成功</h1>
      <span id="time">5</span><span>秒后跳转回首页</span><a href="back()">返回</a>
       
      
      <script type="text/javascript">
      var count=document.getElementById("time").innerHTML;
      function counts(){
          count--;
          document.getElementById("time").innerHTML = count;  //需要增加这一句,将count--重新赋值到count.innerHTML中去;
          if(count==0){
              window.location.assign("http://www.imooc.com"); //记住这里要加'http://'
               
          }}
          setInterval("counts()",1000);
      function back(){
          window.history.back();
      } 
       //获取显示秒数的元素,通过定时器来更改秒数。
     
       //通过window的location和history对象来控制网页的跳转。
        
     </script> 
    </body>
    </html>


  • Uauslman
    2016-04-24 15:51:22

    var count=document.getElementById("time").innerHTML

    改为

    var document.getElementById("time").innerHTML=count;

  • 糖酥鱼橙
    2016-04-23 00:28:51

    不知道是不是写错还是浏览器不同问题,window.location.assign("www.imooc.com");改为window.location.assign("http://www.imooc.com");就能打开。

  • smile唯我懂你
    2016-04-22 23:48:04

    <!DOCTYPE html>

    <html>

     <head>

      <title>浏览器对象</title>  

      <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   

     </head>

     <body>

      <!--先编写好网页布局-->

      <h1>操作成功</h1>

      <span id="time">5</span><span>秒后跳转回首页</span><a href="back()">返回</a>

       

      

      <script type="text/javascript">

      var count=document.getElementById("time");

    //首先你这一句var count=document.getElementById("time").innerHTML; 与 count--; 存在逻辑问题,你只是把数字5获取到了并复制给count变量而count变量与原来的数字半毛钱的关系都没得它只充当一个存储介子,所以count--并没法对原来的数字进行改变。如果你这样做就会出现数字5不变的情况。(我只是大概改了一下,应该还可以简化,毕竟我也不是什么高手,有错的地方欢迎斧正。)

      function counts(){

          count.innerHTML--;

          if(count.innerHTML==0){

              window.location.assign("www.imooc.com");

               

          }}

          setInterval("counts()",1000);

      function back(){

          window.history.back();

      } 

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

     

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

        

     </script> 

    </body>

    </html>