为什么计时器不起作用?

来源:8-17 编程练习

小猪想飞

2018-08-28 15:56

<script type="text/javascript">

window.onload=function(){

    var oSe=document.getElementById("second");

    var num=oSe.innerHTML;

    function count(){

    num--;

    oSe.innerHTML=num;

    if (num==0) {

   

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


    }

   

}


 setInterval("count()",1000);

 

}


 

</script>

</head>

 


<body>

<h2>操作成功</h2>

<span id="second">5</span>

<span>秒后自动跳转</span>

</body>

</html>

 

为什么计时器不起作用

写回答 关注

2回答

  • 慕娘6527991
    2018-09-13 14:11:44

    <h2>操作成功</h2>

    <span id="second">5</span> <span>秒后自动跳转</span>

    <script type="text/javascript">

    var num;

    window.onload = function()

    {

    setInterval("count()", 1000);

    };

    function count() {

    var oSe = document.getElementById("second");

    var num = oSe.innerHTML;

    num--;

    oSe.innerHTML = num;

    if (num == 0) {

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

    }

    }

    </script>

    试试我改的!

    1. 我觉得不可以在函数里面定义函数

    2. 你这个var num;定义的是局部变量,在函数里面定义的只会在页面加载onload时执行一次,也就是说你获得的num一直只是5,以后num--,只会改变一次

    3. 你的oSe变量也只获得过一次,所以得到的num也不会改变

    4. location.assign(param),这个param参数应该是URL,整个URL,而不是去掉协议名的Host主机名.那样会导致服务器在本页面下面的页面寻找www.imooc.com

  • 慕标1871481
    2018-09-04 13:35:16

     setInterval("count()",1000);改成 setInterval(count,1000);就可以了

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题