virusos
2016-07-14 13:46
为什么5秒没有变成4,3,2,1……?
你的错误在于你的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>
这个跟你的代码没什么关系,你拿到自己的编辑器上打开就可以正常运行了,2楼的说法不敢苟同,变量的位置决定的是它的作用域,在这里把timer当做全局变量是可以的,它不影响程序的正常运行
把 var num=document.getElementById("timer").innerHTML;这行代码放到function(){}里面
要执行这个方法,把变量定义在方法内
把setInterval("count()",1000);放在函数内,跟在if语句的后面,应该就可以了
JavaScript进阶篇
468196 学习 · 21891 问题
相似问题