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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?