如何在多个页面上使用.get()时指定.append()顺序?

时间:2017-01-25 16:05:52

标签: javascript jquery

我使用.get()从一系列页面中提取内容,并希望按照我设置的数组中每个页面出现的顺序附加提取的内容。但是,聚合页面会在他们准备好后立即附加项目。如何指定附加项目的顺序?

function loadHTML() {
    for(i = 0; i < 4; i++) {                        
        var slug = ["slug-1", "slug-2", "slug-3", "slug-4"]
        $.get('http://website.com/' + slug[i], function(data) { 
            var text = $(data).find(".text").html();
            var title = $(data).find("#title").html();
            $("#page").append("<div class='content_block'><h1>" + title + "</h1>" + text + "</div>");
        });
    }
};  

loadHTML();

1 个答案:

答案 0 :(得分:3)

您需要使用回调再次呼叫:

var cnt = 0;
var slug = ["slug-1", "slug-2", "slug-3", "slug-4"];
function loadHTML() {
  if (cnt>=slug.length) return; // stop
  $.get('http://website.com/' + slug[cnt++], function(data) { 
    var text = $(data).find(".text").html();
    var title = $(data).find("#title").html();
    $("#page").append("<div class='content_block'><h1>" + title + "</h1>" + text + "</div>");
    loadHTML();
  });
}
loadHTML();

OR有一个服务器进程获取数组并在一个块中返回数据