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

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

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


正在回答

5 回答

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

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

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

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


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

慕粉1083982

太厉害了
2016-05-04 回复 有任何疑惑可以回复我~

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

改为

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

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

Uauslman

不好意思没看仔细,应该是在你的函数里重新赋值var document.getElementById("time").innerHTML=count;
2016-04-24 回复 有任何疑惑可以回复我~

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

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

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


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

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信