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

请问我的代码哪里不对?


为什么5秒没有变成4,3,2,1……?

正在回答

4 回答

你的错误在于你的js位置写错了,你在js里获取id为timer这个元素的时候,浏览器并没有解析到html的位置,所以它没获取到timer,你把js放在html后面就可以了,如下:

<!DOCTYPE html>
<html>
<head>
   <title>浏览器对象</title>
   <meta charset="utf-8"/>
   <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>


</head>

<body>
<!--先编写好网页布局-->
<h1>操作成功</h1>
<span id="timer">5</span>
<span>秒后回到主页</span>
<a href="javascript:back();">返回</a>


</body>
<script type="text/javascript">

   //获取显示秒数的元素,通过定时器来更改秒数。
   var num=document.getElementById("timer").innerHTML;
   function count(){
       num--;
       document.getElementById("timer").innerHTML=num;
       if(num==0){
           window.location.assign("http://www.imooc.com");
       }
   }
   setInterval("count()",1000);
   //通过window的location和history对象来控制网页的跳转。
   function back(){
       window.history.go(-1);
   }
</script>
</html>

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

这个跟你的代码没什么关系,你拿到自己的编辑器上打开就可以正常运行了,2楼的说法不敢苟同,变量的位置决定的是它的作用域,在这里把timer当做全局变量是可以的,它不影响程序的正常运行

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

把 var num=document.getElementById("timer").innerHTML;这行代码放到function(){}里面 

要执行这个方法,把变量定义在方法内

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

把setInterval("count()",1000);放在函数内,跟在if语句的后面,应该就可以了

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468046    人
  • 解答问题       21891    个

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

进入课程

请问我的代码哪里不对?

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