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

为什么到了0之后还是会自减

<!DOCTYPE html>

<html>

 <head>

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

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

 </head>

 <body>

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

  <p>操作成功</p>

  <p><span id="back">5秒回到页面&nbsp;</span>

    <a style="text-decoration:underline ">返回</a></p>


 

  <script type="text/javascript">  

 


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

    var aaa=document.getElementById("back");

    var bbb=5;

    function con()

    {

         bbb--;

         aaa.innerHTML=bbb+"秒后回到页面";  


    }

    var i=setInterval("con()",1000);


    if(bbb==0)

    {

      clearInterval(i);

      

    }


 

 

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

   

 </script> 

</body>

</html>


提问者:李逍遥lh 2016-08-15 10:27

个回答

  • 肖小波
    2016-08-15 17:30:38
    已采纳

    回复 李逍遥lh:        <script type="text/javascript">
                //获取显示秒数的元素,通过定时器来更改秒数。
                var aaa = document.getElementById("back");
                var bbb = 5;
                    var i = setInterval("con()", 1000);
                function con() {
                    aaa.innerHTML = bbb + "秒后回到页面";
                    if(bbb == 0) {clearInterval(i);}bbb--;}
                //通过window的location和history对象来控制网页的跳转。
            </script>
    失误了,要把判断函数放在循环里面,这样就可以了

  • 肖小波
    2016-08-15 14:51:04

    if(bbb==0)

        {

          clearInterval(i);

        }else{

          setInterval("con()",1000);

       }

    就行了,你要把定时器放在判断语句里面,否则的话定时器无限循环,根本不会执行判断(bbb==0)


  • 小狗会飞
    2016-08-15 12:27:38

    bbb=0时,setTimeout()停止,接着function函数继续执行,bbb=-1,setTimeout()继续显示时间,接着……

  • 慕仔5984530
    2016-08-15 11:39:52

    我觉得你只是停止计时器了,那个con方法还会执行,还会--

  • qq_就不告诉你_03636250
    2016-08-15 11:28:43

     感觉没毛病啊