在foreach内部调用ajax的解决方案

时间:2018-04-19 08:37:21

标签: jquery html ajax foreach

我有一个带小部件的json

  

{“widgetname”:“widget1”,“widgetID”:“FJRH585fKFJN234NC”}

我循环json并为每个json对象获取html。

$.ajax({
    url: "get_json.php",
    data: {action: "get_widgets", userID: user},
    type: "POST",
    success: function(data){
        data = JSON.parse(data);
        var r = 0;
        $.each(data, function() {
            var widgetID = this.widgetID;
            $.ajax({
                url: this.widgetname+".html",
                data: {},
                type: "GET",
                success: function(datas){
                    var parsed = $($.parseHTML(datas));
                    var parsed1 = parsed.filter("*").first().attr("data-item", data[r].widgetID);
                    $(".grid").append(parsed1);
                    r++;
                }
            });

        });
    }
});

对于每个json对象,我执行ajax调用以获取窗口小部件的html内容 这不是正确的方法 我的widgetID未设置为正确的小部件,因为ajax调用未在新的小部件启动之前完成 如何以正确的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

试试这个...... 您将此代码置于成功函数中。

success: function(datas){
        $.each(datas, function(i, item) {
          var parsed1 = parsed.filter("*").first().attr("data-item", item.widgetID);
          $(".grid").append(parsed1);
        });
}

$.each(data, function(i, item) {
   alert(item.widgetname);
});