为什么这样不行?

来源:8-17 编程练习

喵的一声呀

2016-08-17 15:55

<html>
<head>
  <title></title>
<script type="text/javascript">
var time=document.getElementById("num").innerHTML;
function change(){
  time--;
  document.getElementById("num").innerHTML=time;
  while(time==0){
  location.replace("http://baidu.com");
}
}
setInterval("change()",1000);
</script>
</head>
<body>
<h1>操作成功</h1>
<span id="num" >5</span>
  <span >秒后回到主页</span>
  <a href="www.baidu.com">返回</a>
</body>
</html>

写回答 关注

13回答

  • __zz
    2016-08-30 18:13:09
    <a href="javascript:history.back()">

    这么写,返回是让你去history里操作,并不是点一下打开一个百度这么简单。

  • __zz
    2016-08-30 18:05:50

    问题有点多。

    首先,楼上的各位甚至都没有去试过,innerHTML这里没有问题。

    其次,<script></script>写在前面,没有get到id="num"这个元素,更不用说innerHTML和之后的操作了。

    然后,while(){}是个循环,满足条件它就进去循环了,就相当于电路里的短路了(我是这么理解),你只需要用if(),或者在while里执行完最后加break;。你用location.replace,无碍,但不妥。

    然后,http://www.baidu.com,学习阶段一定完整,以后有空可以了解。

    小白一枚,共同学习~

    __zz 回复喵的一声呀

    浏览器由上到下解析

    2016-08-31 09:10:58

    共 2 条回复 >

  • scuthua
    2016-08-21 05:58:53

    这个不知道是不是因为js写在了head部分里。

    js先于id为num的span执行,time就成了null了。

    (同是新手,不对请指正。)

  • 喵的一声呀
    2016-08-17 20:20:43

    嗦嘎,谢谢你们!

  • 朝花bu夕拾
    2016-08-17 17:01:27

    楼上+1,你在HTML里面赋值的5是一个字符串类型,获取到的字符串不能用于算术加减.

  • TanX17丶
    2016-08-17 16:53:22

    document.getElementById("num").innerHTML得到的是字符串类型,字符串类型不能自减

  • 慕瓜4769824
    2016-08-17 16:36:37

    肯定不行啊,你得到的是num的内容是一个字符串,要转换为数值型才能进行自减,而且JS不会报错的,不自减这个函数就运行不了

  • nicePlay
    2016-08-17 16:32:28

     <p><span id="timeout"></span>秒后回到主页<a href="http://www.imooc.com">返回<a/></p>
     
      <script type="text/javascript">  
     
       //获取显示秒数的元素,通过定时器来更改秒数。
        var time=5
       function timeout(){
           if(time>0){
            document.getElementById("timeout").innerHTML=time;
               time--;
           }
       }
       var timeoutId=setInterval(timeout,1000)
        
       //通过window的location和history对象来控制网页的跳转。
       var changeId=setTimeout(window.history.back,5000);
     </script>

  • 慕前端9656150
    2016-08-17 16:29:34

    你innerHTML 得到的是 5 是字符型 和a b c这些一样 字符怎么做运算呀  要转换成 整数型

  • nicePlay
    2016-08-17 16:29:00

    不是location.replace()吗

  • qq_纯粹_3
    2016-08-17 16:24:49

    var time=document.getElementById("num").innerHTML;这一句的问题

  • qq_纯粹_3
    2016-08-17 16:24:06

    没道理呀 这个怎么可能获取不到?

  • nicePlay
    2016-08-17 16:17:11

    这样获取的time变量是字符串类型,怎么做运算呢。time.parseInt()可以转换。而且这样写自减一只会运行一次。

    喵的一声呀

    js进阶篇8-16编程练习同学chuikokching的,也没有进行转换,为什么他的可以呢?

    2016-08-17 20:50:04

    共 1 条回复 >

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题