如何正确返回jQuery ajax成功函数的数组?

这个问题在这里已经有了答案:

  • 如何返回来自异步调用的响应? 33个答案

  • 在你的代码中,在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的类型,然后在循环中创建一个新组,然后将其推入数组中。

    链接地址: http://www.djcxy.com/p/9495.html

    上一篇: How to return an array from jQuery ajax success function properly?

    下一篇: How to return value when AJAX request is succeeded