我远非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只有一些了解,没有别的。我发现的所有答案都非常模糊。
提前致谢。非常感谢帮助。
答案 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);
}
});