为什么jquery.each在带有参数的函数中旋转一次
我每个jquery都有问题。这是每一个街区为什么jquery.each在带有参数的函数中旋转一次,jquery,each,Jquery,Each,我每个jquery都有问题。这是每一个街区 $(document).ready( function(){ $('td.trh').each(function(index) { frk=fark($(this).text()); // frk useless variable $('td.sure').eq(index).text(frk); // can be $('td.sure').eq(index).text(fark($(this).text(
$(document).ready( function(){
$('td.trh').each(function(index) {
frk=fark($(this).text()); // frk useless variable
$('td.sure').eq(index).text(frk); // can be $('td.sure').eq(index).text(fark($(this).text()));
});
});
td.trh的日期类似于“2012-03-02 11:25:30”,我试图计算经过的时间。。这对第一个项目非常有效,但之后每个循环都停止工作
如果我调用像simdi()这样的函数;没有参数,每个都能完美工作
fark函数类
function saat(trh){ //trh=2012-03-02 11:25:30
kes=trh.indexOf(' ');
kes++;
saat = trh.substring(kes); //saat=11:25:30
sparca = saat.split(":");
sTOsn=sparca[0] * 60 * 60; //sparca[0]=11 and 60*60 for hour to sec conversion
dkTOsn=sparca[1] * 60; //sparca[1]=25 and 60*60 for minute to sec conversion
sn=sparca[2] * 1;
sn=sTOsn+dkTOsn+sn; // all of this saat function for calculate time in sec
return sn;
}
function simdi() {
var now = new Date();
var s = now.getHours();
var dk = now.getMinutes();
var nsn = now.getSeconds();
sTOsn=s * 60 * 60;
dkTOsn=dk *60;
rsn = nsn + dkTOsn + sTOsn; // all of this simdi function for calculate current time in sec
return rsn;
}
function fark(trh) {
ssaat=saat(trh); // parameter date calculating in sec
suan=simdi(); // current date calculating in sec
snc=suan-ssaat; // calculating beetween parameter date and current date time difference
hh= snc / 3600 | 0;
mm= (snc - (hh*3600)) / 60 | 0;
ss= snc % 60;
return (hh < 10 ? "0" : "") + hh + (mm < 10 ? ":0" : ":")+ mm + (ss < 10 ? ":0" : ":")+ ss; // and formating time differenc like hour:minute:second
}
函数saat(trh){//trh=2012-03-02 11:25:30
kes=trh.indexOf(“”);
kes++;
saat=trh.substring(kes);//saat=11:25:30
sparca=saat.split(“:”);
sTOsn=sparca[0]*60*60;//sparca[0]=11和60*60用于小时到秒的转换
dkTOsn=sparca[1]*60;//sparca[1]=25和60*60,用于分秒转换
sn=sparca[2]*1;
sn=sTOsn+dkTOsn+sn;//用于以秒为单位计算时间的所有saat函数
返回序列号;
}
函数simdi(){
var now=新日期();
var s=now.getHours();
var dk=now.getMinutes();
var nsn=now.getSeconds();
sTOsn=s*60*60;
dkTOsn=dk*60;
rsn=nsn+dkTOsn+sTOsn;//用于以秒为单位计算当前时间的所有simdi函数
返回rsn;
}
功能fark(trh){
ssaat=saat(trh);//以秒为单位计算参数日期
suan=simdi();//以秒为单位计算当前日期
snc=suan ssaat;//计算参数日期和当前日期时间差
hh=snc/3600 | 0;
mm=(snc-(hh*3600))/60 | 0;
ss=snc%60;
返回(hh<10?:0:“)+hh+(mm<10?”:0:“)+mm+(ss<10?”:0:“:”+ss;//和格式化时间差,如小时:分钟:秒
}
语句
saat = trh.substring(kes);
覆盖您的函数saat
。换成
var localSaat = trh.substring(kes);
下一个声明是
var sparca = localSaat.split(":");
您应该始终在函数中的局部变量前面使用
var
,这样它们就不会变为全局变量并破坏全局名称空间(并导致类似的问题)。抱歉,但仍然很难判断问题出在哪里。什么是frk?如果它是全局的,你会意识到它每次通过循环都会被覆盖,对吗?预期的和实际的行为是什么?谢谢你的回答。代码现在可以正常工作了。这真是一个愚蠢的错误:)我不敢相信我错过了它,我看到了所有这些全局变量,并认为它们出于某种原因是必要的,但我没有看到其中一个全局变量与函数同名(saat)