我将问我为什么我的数组在我添加时没有值。这是我的jquery代码在数组JQUERY中添加值。
// ----我在数组
中设置了值var arr= [];
$.ajax({
type: 'POST',
url: base_url+'joborder/select_account_details/',
beforeSend: function() {
$(".modal").show();
},
data: {date_added: date_added, ba: ba, service_type: custom},
success: function (data) {
$(".modal").hide();
if(data.length != 0) {
$.each(JSON.parse(data),function(index,val)
{
var values = {};
values['id'] = val.id;
values['name'] = val.name;
values['address'] = val.address;
values['age'] = val.age;
arr.push(values);
});
}
}
});
// ---我从这里开始获取我在数组中添加的值,但它返回一个空,我想从这里开始附加数据,以便不加载ajax的返回数据
// var newval;
$.each(arr,function(key,row)
{
console.log(row);
// newval += '<tr>';
// newval += '<td></td>';
// newval += '<td>'+row.id+'</td>';
// newval += '<td>'+row.name+'</td>';
// newval += '<td>'+row.address+'</td>';
// newval += '<td>'+row.age+'</td>';
// newval += '</tr>';
});
// $("#display_details tbody").append(newval);
答案 0 :(得分:0)
将您的ajax请求设为同步(阻止)。默认情况下,请求是异步(非阻塞),这意味着浏览器不会等待它们完成以继续其工作。这就是你$.each
错误结果的原因。将async: false
添加到您的ajax请求中,如下所示,
var arr= [];
$.ajax({
type: 'POST',
url: base_url+'joborder/select_account_details/',
beforeSend: function() {
$(".modal").show();
},
data: {date_added: date_added, ba: ba, service_type: custom},
success: function (data) {
$(".modal").hide();
if(data.length != 0) {
$.each(JSON.parse(data),function(index,val)
{
var values = {};
values['id'] = val.id;
values['name'] = val.name;
values['address'] = val.address;
values['age'] = val.age;
arr.push(values);
});
}
},
async: false // this make it as synchronous
});