<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>
<a href="javascript:history.back()">
这么写,返回是让你去history里操作,并不是点一下打开一个百度这么简单。
问题有点多。
首先,楼上的各位甚至都没有去试过,innerHTML这里没有问题。
其次,<script></script>写在前面,没有get到id="num"这个元素,更不用说innerHTML和之后的操作了。
然后,while(){}是个循环,满足条件它就进去循环了,就相当于电路里的短路了(我是这么理解),你只需要用if(),或者在while里执行完最后加break;。你用location.replace,无碍,但不妥。
然后,http://www.baidu.com,学习阶段一定完整,以后有空可以了解。
小白一枚,共同学习~
这个不知道是不是因为js写在了head部分里。
js先于id为num的span执行,time就成了null了。
(同是新手,不对请指正。)
嗦嘎,谢谢你们!
楼上+1,你在HTML里面赋值的5是一个字符串类型,获取到的字符串不能用于算术加减.
document.getElementById("num").innerHTML得到的是字符串类型,字符串类型不能自减
肯定不行啊,你得到的是num的内容是一个字符串,要转换为数值型才能进行自减,而且JS不会报错的,不自减这个函数就运行不了
<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>
你innerHTML 得到的是 5 是字符型 和a b c这些一样 字符怎么做运算呀 要转换成 整数型
不是location.replace()吗
var time=document.getElementById("num").innerHTML;这一句的问题
没道理呀 这个怎么可能获取不到?
这样获取的time变量是字符串类型,怎么做运算呢。time.parseInt()可以转换。而且这样写自减一只会运行一次。