4 回答
TA贡献23条经验 获得超66个赞
你好,看了你的代码小白我做了下面的修改;
<html> <head> <meta charset="utf-8"> </head> <body> <h2>操作成功</h2> <p><span id="s">5</span>秒后回到主页<a href="javascript:back()">返回</a></p><!--先编写好网页布局--> <script> var scd=document.getElementById("s").innerHTML; function sd() { var o=document.getElementById("s"); i= setInterval("sd()",1000); o.innerHTML=scd if (scd==1){ clearInterval(i); location.replace("http://www.imooc.com/"); } scd--; } //获取显示秒数的元素,通过定时器来更改秒数。 function back(){ window.history.go(-1); } sd(); //通过window的location和history对象来控制网页的跳转。 </script> </body> </html>
针对你写的代码 不运行的原因 小白认为有五点:
你的函数 function sd() 根本都没运行吗... 对吧. 你应该在末尾加上一个sd();
var scd=document.getElementById("s").innerHTML;
var scd=5;
你都通过变量scd 获取了id为s 的值 为什么还要 写这句var scd = 5 呢
3. setInterval(sd,1000); 的用法错了. 我记得是 setInterval("sd()",1000); 记住有双引号 和 大括号 "sd()";
4.你应该是想做个倒数吧, scd--
这样可不行哦; 还得输出出来给用户看见的
所以增加一个document.getElementById("s").innerHTML = scd ;
5.你给的变量名 感觉是乱起的 .. 最好就是规范同一 用英文名缩写;还有分行什么的 自己看的舒服 别人也看的舒服 .
就这样吧 加油~
TA贡献9条经验 获得超3个赞
建议你把要调用的函数放在定时器外部
var i = setInterval(sd,1000);
function sd(){
scd--;
document.getElementById("s").innerHTML = scd;
if (scd==0)
{
clearInterval(i);
location.replace("http://www.imooc.com/");
}
}
添加回答
举报