如何正确返回jQuery ajax成功函数的数组?
这个问题在这里已经有了答案:
在你的代码中,在ajax调用之后,你正在寻找使用过程编码的groups
。 主要的问题是你在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);
});
大卫简单的例子。
TheObject = {
getArray: function(callback) {
$.ajax({
cache: true,
type: "GET",
url: "http://www.domain.com/core/domains.php",
success: function (data){
callback.call(this,data);
}
});
}
}
TheObject.getArray(function(data) {
javascript: console.log(data);
});
使用阵列上的push
。 你也想创建一个名为Group的类型,然后在循环中创建一个新组,然后将其推入数组中。
上一篇: How to return an array from jQuery ajax success function properly?