【发布时间】:2011-08-20 08:50:19
【问题描述】:
这是我的 AJAX 成功回调:
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;
}
数据是一个 JSON 对象。
如您所见,我正在尝试从 JSON 对象构建一个列表,但是当我返回变量 uD 时,它是未定义的。如何让uD 的值超出 $.each 函数的范围?
编辑:对不起,我应该指定的。 return 语句仅在 AJAX 回调中,因为 AJAX 调用在另一个函数中(需要返回一些东西。)因为它是异步的,所以我不能在 AJAX 调用之后返回,它必须在回调中。
【问题讨论】:
-
不是
$.each的问题,不能从Ajax回调中返回数据。见:jQuery: Return data after ajax call success(投票作为重复关闭) -
@Kelly:
each回调中没有return。数据附加到回调可以访问的uD变量。这将正常工作。但是 OP 正在从success回调返回数据,这将不起作用。 -
根据下面 wanavak 的评论,这个问题似乎有缺陷。