我在下拉菜单中有一个事件。现在每当发生这种事件时,我必须读取表格数据,并对其进行修改。我正在使用$("table").each(function(){});
函数读取表数据,并再次使用相同的代码对其进行修改。但是这两个函数都在并行工作,而我希望它们能够一个接一个地执行。 我的代码看起来像。一个接一个地在javascript中调用相同的事件
$(document).on('change','#rank-q1',function(){
$('#rank-q2').val('rank-asc');
var data=$(this).val().split('-');
var i=-1;
var j=0;
var k=0;
//console.log(results);
$("#tbody-emps tr").each(function(){
k++;
if($(this).find('td').length>6){
var temp=alasql('select '+data[1]+' from '+data[0]+' where '+tableChoice[data[0]]+' = ?',[results[i][j][1]])[0];
if(data[1]=='birthday' || data[1]=='grad'){
results[i][j][0]=Date.parse(temp[data[1]]);
}else{
results[i][j][0]=temp[data[1]];
}
results[i][j][2]=$(this).html();
console.log(results[i][j][2]); ///Note here
}else{
if(i>=0){
results[i].sort(function(a,b){
return a[0]>b[0]?-1:(a[0]<b[0]?1:0);
});
}
i++;
j=0;
}
});
results[i].sort(function(a,b){
return a[0]>b[0]?-1:(a[0]<b[0]?1:0);
});
console.log(results);
var i=-1,j=0;
$("#tbody-emps tr").each(function(){
if($(this).find('td').length>6){
$(this).html(results[i][j][2]);
j++;
}else{
i++;
j=0;
}
});
console.log(results);
});
由于$('table').each(function(){});
正在使用两次它是在同一时间执行。我该怎么办? 供参考:所有console.log(results)
都给我结果数组相同的旧值,而当我使用console.log(results[i][j][2])
它显示我更新的信息。这就是为什么它看起来像这些功能在同一时间运行,没有更新。
他们将执行一个其他后。 – Rajesh
他们不能并行工作,javascript是单线程向我们展示更多的代码[mcve],并提供一个适当详细的问题陈述以及你正在试图用这个代码做什么的真实解释。看到[问] – charlietfl
很难评估这种精神状态,而无法在开发工具中进行调试。在jsfiddle,codepen,plunker或其他沙箱中的演示将有所帮助 – charlietfl