my_00
my_00
采纳率0%
2016-04-21 14:05

jsp 页面显示问题:spans[i].innerHTML=msg不显示什么原因?在线等!谢谢啦!!

  • 标签显示数据
  • java
  • 计时器

jsp 页面显示问题:spans[i].innerHTML=msg;不显示;spans[0~4].innerHTML=msg;显示!什么原因?在线等!谢谢啦!!

 <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript">
onload=function(){
    var ordertime;
    var timer;
    var inputs = $(".input");
    var spans = $(".span");
    var nowtime;
    var minutes;
    var seconds;
    var msg;
    var size=inputs.size();
    for(var i = 0;i<size;i++){
        //alert(size);
        ordertime = inputs[i].value;
        ordertime=ordertime.replace("-","/");
        ordertime=ordertime.replace("-","/");
        ordertime=new Date(ordertime);
        nowtime=new Date();
        //alert();
        maxtime = (ordertime.getTime()-nowtime.getTime())/1000+30*60;
        timer = setInterval( function CountDown(){ 
             if(maxtime>=0){  
                minutes = Math.floor(maxtime/60);  
                seconds = Math.floor(maxtime%30);  
                msg = "距离结束还有"+minutes+"分"+seconds+"秒";  
                // alert(msg);
                spans[i].innerHTML=msg;
                 //document.getElementById("timer").innerHTML=msg;  
                 if(maxtime == 5*30) alert('注意,还有5分钟!');  
                 --maxtime;  
                 }  
                 else{  
                 clearInterval(timer);  
                 alert("时间到,结束!");  
                 }  
                 },1000);
    }
};
</script>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • danielinbiti danielinbiti 5年前
     参数不对,
     spans[i].innerHTML这里运行的时候i已经是size的值了,定时部分用闭包解决变量冲突问题。setInterval用setTimeout
     (function(i,maxtime){
               var CountDown = function(){ 
                 if(maxtime>=0){  
                    minutes = Math.floor(maxtime/60);  
                    seconds = Math.floor(maxtime%30);  
                    msg = "距离结束还有"+minutes+"分"+seconds+"秒";  
                    // alert(msg);
                    spans[i].innerHTML=msg;
                     //document.getElementById("timer").innerHTML=msg;  
                     if(maxtime == 5*30) alert('注意,还有5分钟!');  
                     --maxtime;  
                     setTimeout(CountDown ,1000);
                  }  
                     else{  
                     console.log("时间到,结束!");  
                     }  
                     }
               setTimeout(CountDown  ,1000);
            }(i,maxtime));
    
    点赞 1 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 5年前

    写在onready里看看,onload可能一些html元素还没有加载

    点赞 评论 复制链接分享

为你推荐