2017-07-28 75 views
0

我远离JS的专家,我需要一些帮助从同一个域的其他页面加载多个元素的内容。我现在有这样的:将url中的多个元素加载到数组中jQuery

$(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.container”多格容器需要获得放置在从各自的URL的多个元素。我只想扫描一次url,并将所有元素的内容放入一个数组中,这样它就不会多次加载每一页,因为它会增加加载时间。

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

在此先感谢。非常感谢帮助。

回答

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); 

    } 
}); 
相关问题