2013-03-23 74 views
0

我想將多個HTML外部頁面導入到一個div中。 例如:我是page1.HTML,page2.html等。我有這一塊的jQuery:在頁面加載時將多個HTML頁面導入到單個div

<script type="text/javascript"> 
$(document).ready(function() { 
$('.main').load('page1.html'); 
}); 
</script> 

只是我不知道如何添加多個頁面,以導入頁面加載同一div這工作得很好。

謝謝我的朋友。

+1

使用JQuery.get() - 然後使用返回的響應字符串繼續添加到div。 – LiverpoolsNumber9 2013-03-23 22:01:31

+0

爲什麼不使用每頁一個div?還是內聯框? – Christophe 2013-03-23 22:12:49

回答

1

如果你想要倍數,那麼你不能使用負載。使用$.get代替,並指定回調將它們添加到div:

var pages = ['page1.html', 'page2.html', etc..], 
    $main = $('.main'), 
    doLoad = function() { 
     if(pages.length > 0) { 
      // use shift to get the next page off the array 
      $.get(pages.shift(), function(content) { 
       // append content to .main 
       $main.append(content); 
       // call do load to get the next entry 
       doLoad(); 
      }); 
     } 
    }; 

doLoad(); 
+0

請注意,頁面會在加載後立即添加,這不一定是頁面數組中的順序。 – Christophe 2013-03-23 22:47:00

+0

@cristophe:不,他們不會。這是專門編寫的,以按照數組的順序加載頁面。由於從ajax請求的成功回調中調用了doLoad,並且該數組像隊列一樣處理,所以只有在前一頁完成後才加載下一頁。 – prodigitalson 2013-03-23 22:52:37

+0

哦,對不起,我太快讀了。所以一次只能加載一個頁面會很慢。 – Christophe 2013-03-23 22:54:18

0

創建的HTML的文件數組來加載,並通過與Ajax調用每個頁面的數組迭代,然後使用jQuery前置( )將內容放入元素中。

1
var pages=["page1.html","page2.html","page3.html"], 
    mainDiv=$(".main"); 
$.each(pages, function(i,page){ 
    var newDiv=mainDiv.append("div"); 
    newDiv.load(page); 
}); 

load()方法會更容易得到比(),如果你只是要加載頁面片段(通常情況下,如果你處理包括head標籤整頁)。