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

谁帮我看下这段js代码,改了两天都没改好

谁帮我看下这段js代码,改了两天都没改好

Mu灬木 2016-09-19 09:58:29
<body>    <!--先编写好网页布局-->    <p>操作成功</p>    <br>    <p><span id="second">5</span>秒后返回主页&nbsp<a href="javascript:GoBack()">返回</a></p>    <script type="text/javascript">    //获取显示秒数的元素,通过定时器来更改秒数。    var num = document.getElementById("second");    function snum() {        num = num-1;        num.innerHTML = num;        if (num == 0) {            window.location.replace("http://www.imooc.com")        }        else{setTimeout(snum(), 1000)};    }    setTimeout(snum(), 1000);    //通过window的location和history对象来控制网页的跳转。    function GoBack() {        window.history.back();    }    </script></body>
查看完整描述

1 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

var numDiv = document.getElementById("second");
    function snum() {
	var num=numDiv.innerHTML;
        num = num-1;
        numDiv.innerHTML = num;
        if (num == 0) {
            window.location.replace("http://www.imooc.com")
        }
        else{setTimeout(snum, 1000)};
    }
    setTimeout(snum, 1000);
    //通过window的location和history对象来控制网页的跳转。
    function GoBack() {
        window.history.back();
    }

一个是span,一个是innerHTML取出来的值,怎么可能都是num

还有setTimeout里函数的写法也错了

查看完整回答
反对 回复 2016-09-19
  • Mu灬木
    Mu灬木
    谢谢,可以了,但是还是不明白为何setTimeout里的函数不能加括号,调用函数不是应该得加括号吗?
  • Caballarii
    Caballarii
    setTimeout两种写法,另一种是setTimeout("snum()",1000)
  • Mu灬木
    Mu灬木
    懂了,谢谢。document.getElementById("second")和document.getElementById("second").innerHTML取出的值为什么不是一样的?
点击展开后面2
  • 1 回答
  • 0 关注
  • 1078 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信