Ответ 1
В вашем коде вы ищете groups
с помощью процедурного кодирования после того, как был сделан ajax-вызов. Основная проблема заключается в том, что вы ищете groups
до завершения вызова ajax.
Другая проблема заключается в том, что вы возвращаете группы в функцию 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);
});