(这是定时器执行的那一列,每秒减一)我的想法是监控flag 的长度来判断是否在当前报表进行了查询操作(appl是某个控件名称),如果进行了查询操作,则将当前定时器myVar清除。但好像清除失败了function setColor(){ var s; if(f_audio_finish){ var result=minSum(FR.remoteEvaluate('=format(now(),"yyyy-MM-dd HH:mm:ss")'),f_rk_time)+60*testBatch; if(result>0){ s=format_time(result); }else{ s="-"+format_time(Math.abs(result)); } } else if(!f_audio_finish&&s1>60*testBatch){ s=format_time(minSum(f_audio_finish,f_rk_time)); } else if(f_audio_finish!=null||f_audio_finish!=""||f_audio_finish!=undefined){ s=""; } //将得到的秒数转化成分钟数 var min_result = result/60; //contentPane.setCellValue(22,row-1,Math.floor(min_result)); contentPane.setCellValue(5,row-1,s); //拼接对应单元格的选择器 var selector ="F" + row +"-0-"+ $(".x-table").attr('id') +">div>input"; //根据对应单元格分钟数的大小动态设置对应单元格字体的颜色 if(min_result<-10000){ //小于-3000字体红色 $("#"+selector).css("color","rgb(255,0,0)"); }else{ //不小于则为黄色 $("#"+selector).css("color","rgb(255,204,0)"); } if(flag.length>0){ clearInterval(myVar); console.log("清除后"); } //console.log($("#"+selector));} var myVar=setInterval(setColor,1000);console.log(myVar);输出的一直是这个18到34的循环,查询前后都是这个appl是一个参数面板里的一个日期控件的名称为什么还会获取清除前的17-33,而不是只获取清除后的427这一部分啊,按理说17-33这部分被清除了才对。这样就是走了一次现在的循环,后面就一直走之前的循环,现在的循环没有了,按理应该是一直走现在的循环才对。