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

JS的问题

<!DOCTYPE html>

<html>

 <head>

  <title>浏览器对象</title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   

 </head>

 <body>

  <!--先编写好网页布局-->

  <h3>操作成功</h3>

  <p>

  <b id="second">5</b>秒后回到主页<a href="javasript:count();">返回</a>

 

 

  <script type="text/javascript">  

 var num=5;

 var a=document.getElementById("second");

 function count(){

 while(num>0){

     num--;

 a.innerHTML=num;

 if(num==1){

     window.location.href="http://www.imooc.com/";

 }

 }

 }

   //获取显示秒数的元素,通过定时器来更改秒数。


   //通过window的location和history对象来控制网页的跳转。

   setInterval(count,1000);

   

   

   

   

 </script> 

</body>

</html>



怎么一下就直接减到0了,应该是一秒一秒那么减

正在回答

1 回答

while是循环,判断用if

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

慕斯卡4106679 提问者

答非所问
2015-12-31 回复 有任何疑惑可以回复我~
#2

ppo_YXWU 回复 慕斯卡4106679 提问者

你用了while循环,直接在一次函数调用中把num=5减到num=0;所以就一下直接到0了,应该改为if,或者去掉。
2015-12-31 回复 有任何疑惑可以回复我~
#3

慕斯卡4106679 提问者 回复 ppo_YXWU

我觉得很奇怪,为什么if就会一步一步减,while却不会,这里明明是num--,应该是每次减一后赋值给num
2015-12-31 回复 有任何疑惑可以回复我~
#4

ppo_YXWU 回复 慕斯卡4106679 提问者

while是循环啊,当while的条件为真的时候就会继续循环,条件为假时就退出循环,你这个while的条件是num>0,所以while就会一直循环运行,直到num=0时条件为假才会跳出循环。这样就是一次调用函数就到0了。
2015-12-31 回复 有任何疑惑可以回复我~
#5

uwenhao2008 回复 慕斯卡4106679 提问者

这里我理解原因是因为你的程序计时器是1秒钟执行函数function count()一次的 在第一次进入while的时候,num--从5到0根本用不了一秒时间就算完了,实际上5,4,3,2,1都出现过的,只是最后显示的是0而已,没猜错的话你可以把每次的结果都打印出来看看
2016-01-08 回复 有任何疑惑可以回复我~
查看2条回复

举报

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

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

进入课程
意见反馈 帮助中心 APP下载
官方微信