gpt4 book ai didi

jquery - 如何正确从 jQuery ajax 成功函数返回数组?

转载 作者:行者123 更新时间:2023-12-03 22:08:40 25 4
gpt4 key购买 nike

TheObject = {    
getArray: function(){
var groups = new Array;
$.ajax({
type: "POST",
url: "link.php",
success: function (data){
var counter = 0;
$('g',data).each(function(){
var group_name = $(this).find("name").text();
var group_id = $(this).find("id").text();
var group = {
id: group_id,
name: group_name
}
groups[counter] = group;
counter++;
});
return groups;
}
});
}

}

当我尝试调用此方法时:

var a = TheObject.getArray();
alert(a);

它返回“未定义”。我无法弄清楚问题出在哪里。该数组是在 success 函数内创建的,但我无法正确返回它。感谢您的帮助!

最佳答案

在您的代码中,您在进行 ajax 调用后使用过程编码来查找。主要问题是您在 ajax 调用完成之前正在寻找groups

另一个问题是您将组返回给 success() 函数,但 TheObject.getArray() 函数不返回任何内容。

所以你需要将回调引入到ajax函数中,如下所示:

TheObject = {
getArray: function(callback) {
var groups = new Array;
$.ajax({
type: "POST",
url: "link.php",
success: function (data){
var counter = 0;
$('g',data).each(function(){
var group_name = $(this).find("name").text();
var group_id = $(this).find("id").text();
var group = {
id: group_id,
name: group_name
}
groups[counter] = group;
counter++;
});
callback.call(this,groups);
}
});
}
}

TheObject.getArray(function(a) {
// this code runs when the ajax call is complete
alert(a);
});

关于jquery - 如何正确从 jQuery ajax 成功函数返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com