Getting variable value from $.each anonymous function
本问题已经有最佳答案,请猛点这里访问。
这是我的AJAX成功回调:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | success: function(data){ var uD = '<ul class="user-details">'; $.each(data['user details'], (function(key,val){ uD += ' <li> <label>' + key + ':</label><span>' + val + '</span> </li> '; }); uD += ' </ul> '; return uD; } |
data是一个JSON对象。
正如您所看到的,我正在尝试从JSON对象构建一个列表,但是当我返回变量
编辑:对不起,我应该指定。 return语句只在AJAX回调中,因为AJAX调用在另一个函数内(需要返回一些东西。)因为它是异步的,所以我无法在AJAX调用之后返回,它必须在回调中。
从Ajax回调中,您无法返回数据。 我想你要插入你已经构建到DOM中的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | success: function(data){ var uD = '<ul class="user-details">'; $.each(data['user details'], (function(key,val){ uD += ' <li> <label>' + key + ':</label><span>' + val + '</span> </li> '; }); uD += ' </ul> '; $('body').append(uD); } |
而不是
使用异步AJAX调用你不可能真正
1 2 3 4 | function GetMyList() { //AJAX CALL //RETURN RESULT OF AJAX CALL } |
如果在AJAX调用之前创建变量并在
编辑
根据您的注释(您需要从函数返回此值),您对此函数的所有调用都需要等待响应。 然后,我建议你关掉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var uD = null; ... async: false, success: function(data){ uD = '<ul class="user-details">'; $.each(data['user details'], (function(key,val){ uD += ' <li> <label>' + key + ':</label><span>' + val + '</span> </li> '; }); uD += ' </ul> '; } return uD; |