【发布时间】:2014-05-04 10:38:09
【问题描述】:
我在循环外创建了一个数组并在循环内添加了它的值,而不是在循环外打印使用它。 这是我的代码,帮帮我。
$(文档).ready(函数() { var usr_id = $("#user_id").val(); var tabs_name = new Array("full_body", "hand_uper_limb", "lower_trunk" , "spine" , "upper_trunk") ; var tab_order = new Array(); $.each(tabs_name , function(value) { $.ajax({ 方法:“POST”, 网址:“kv_load.php”, 数据:{ id:usr_id,tbl_name:'kv_'+tabs_name[value]}, 成功:功能(响应){ if(response == null || response =="" ) { } else { var obj = jQuery.parseJSON(响应); ax = jQuery.parseJSON(obj.x_coordinate); if (ax!==null && ax.length!== 0) { var len_x =ax.length; } 别的 { len_x = 0 ; } tab_order.push({ table: tabs_name[value], size: len_x }); } }, 失败:函数(){ alert('保存数据失败。'); } }); }); $.each(tab_order, function (index, value) { 警报(value.table +':'+ value.size); }); });这里的“tab_order”是我的数组变量,我从dom准备好的开始声明它,并在每个函数内添加项目,然后我出来打印数组,但结果是空的。不清楚的可以告诉我,我会详细解释。
感谢您的所有回答,我的问题终于在这里解决了。有以下答案,
【问题讨论】:
-
因为ajax是
Asynchronous你可以设置async : false -
谢谢,它成功了。我可以要您的联系方式社交 ID、fb、twitter 或 skype。吗?
-
@MohammadAdil - eeeck。不要设置
async: false。这是一个非常糟糕的做法,因为它在 ajax 调用期间锁定了浏览器。正确的答案是使用正确的异步编程。更多解释请参见How to return the response from an AJAX call?。