将url中的多个元素load()转换为数组jQuery

时间:2017-07-28 07:10:40

标签: jquery html ajax get loading

我远非JS专家,我需要一些帮助,从同一个域的其他页面加载多个元素的内容。我现在有这个:

$(document).ready(function(){
  $('div.container').each(function(){
    var link = $(this).find('a').attr('href');
    var table = $('<table></table>').addClass('params');
    for(i=1; i<4; i++){
      var row = $('<tr />').addClass('param_' + i).html('<td class="val" />');
      table.append(row);
    };
    $(this).append(table);
    $(this).find('tr.param_1 td.val').load(link + ' #content1');
    $(this).find('tr.param_2 td.val').load(link + ' #content2');
    $(this).find('tr.param_3 td.val').load(link + ' #content3');
  });
});

它可以工作,但是你可以看到当前页面上有多个div容器,每个'div.container'需要从它们各自的url中放置多个元素。我想只扫描一次url并将所有元素的内容放入一个数组中,这样它就不会多次加载每个页面,因为它会增加加载时间。

或者您可能有其他建议。但请记住,我对jQuery只有一些了解,没有别的。我发现的所有答案都非常模糊。

提前致谢。非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

我认为,你必须使用本地存储。

以下代码可能对您有所帮助。

$(this).find('td[id^="tr_id_"]').each(function(key,val){
    if (localStorage.getItem("tr_id_"+key) === null) {
         /// Populate the data in td elements via local storage .
        document.getElementById("tr_id_"+key).innerHTML = localStorage.getItem("tr_id_"+key);

    }else{

         $(this).find('tr#tr_id_'+key).load(link);
          /// Store the data in local storage . 
         var html_content = document.getElementById("tr_id_"+key).innerHTML;
   localStorage.setItem("tr_id_"+key,html_content);

    }
});