my_00 2016-04-21 09:09 采纳率: 0%
浏览 1475

jsp 页面为多个标签 用for()循环 分别添加多个计时器!在线等!谢谢啦!!

 jsp 页面为多个标签 用for()循环 分别添加多个计时器!在线等!谢谢啦!!

下面这样写,结果所有span都执行同一个计时器!如何修改??

 for(var i = 0;i<$(".input").size();i++){
        i = i;
        alert(i);
        ordertime=$(".input")[i].value;
        alert(ordertime);
        ordertime=ordertime.replace("-","/");
        ordertime=ordertime.replace("-","/");
        //alert(ordertime);
         var ordertime=new Date(ordertime);
        // alert(ordertime);
         var nowtime=new Date();
        maxtime = (ordertime.getTime()-nowtime.getTime())/1000+30*60;
         alert(maxtime);
         var timer = setInterval( function CountDown(){ 
             //alert(maxtime);
             if(maxtime>=0){  
                 minutes = Math.floor(maxtime/60);  
                 seconds = Math.floor(maxtime%30);  
                 msg = "距离结束还有"+minutes+"分"+seconds+"秒";  
                 //alert(msg);
                // var i = 0;
                 //alert(i);
                 $(".span")[i].innerHTML=(msg);
                 //alert();
                 //document.getElementById("timer").innerHTML=msg;  
                 if(maxtime == 5*30) alert('注意,还有5分钟!');  
                 --maxtime; 
                 //continue;
                // break;
                 }  
                 else{  
                 clearInterval(timer);  
                 //alert("时间到,结束!");  
                 //continue;
                 }  
                 },1000);

    }

  • 写回答

1条回答

  • little_how 2016-04-21 09:37
    关注

    这句话就得i变量产生了闭包;
    还有就是你的循环效率特别低,每次都要考jQuery去选择。

    修改方法:
    for循环之外定义如下两个变量(提高效率);
    var inputs = $(".input");
    var spans = $(".span");

    for循环改变:
    for(var i=0,size=inputs.size;i<size;i++){//减少去size的步骤
    var index = i;
    ....
    ordertime=inputs[index].value;
    ...
    spans[index].innerHTML=msg;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)