我相信這是一個非常簡單的問題,但我有多個頁面,每個頁面都有自己的「內容」,頁面導航位於底部。在我開始編寫腳本以生成幾個不同的html文件之前,他們都有頭部,主體和導航頁腳代碼......我怎麼才能只有一個導航頁腳實例,並且鏈接只更新'content' DIV?通過JavaScript更新元素的內容的如何更新單個div的html內容?
0
A
回答
3
非常簡單的例子:
<div id="content"></div>
<script>
document.getElementById('content').innerHTML='<b>oh hai</b>';
</script>
要做到這一點,當有人點擊一個鏈接,你的功能附加到onclick處理該鏈接,做了更新和然後返回false,以便鏈接不會執行正常的導航。
如果您不想將所有內容加載到單個文件中,則可以使用AJAX動態檢索內容。您可能希望使用像jQuery這樣的庫/框架來簡化AJAX交互的編碼。
1
1
這可以通過幾種不同的方式解決。您需要一次加載所有可能的內容(加載後可輕鬆訪問內容,但初始加載速度較慢),或者您可以按照用戶的要求異步請求內容。
1)具有硬編碼的所有內容到一個頁面
通過這樣做,你會選擇隱藏頁面上的內容塊:
<div class="content-blocks">
<div class="content" id="content1">...</div>
<div class="content" id="content2">...</div>
...
</div>
然後,每個環節將有事件處理程序將適當的內容加載到主內容元素中。
document.getElementById('content1-link').onclick = function() {
document.getElementById('content-box').innerHTML = document.getElementById('content1').innerHTML
}
2)使內容
爲此AJAX請求,你的各種內容塊將被存儲在外部文件,例如'content1.html','content2.html'等。我強烈推薦使用這個方法的AJAX支持的JavaScript庫,因爲它們將處理瀏覽器處理異步請求的差異。有些人,像jQuery,還提供了方便的功能做了這樣的任務:
$('#content1-link').on('click',function(){
$('#content-box').load('/path/to/content1.html');
});
3)使用包括報表
該方法具有易於實現第一方案的(不依賴於異步電動機請求),但它將您的內容保存在單獨的文件中,如第二個解決方案。基本上,您可以使用任何類型的服務器/語言支持(例如SSI包括PHP require
等)。然後,您可以像第一個選項那樣創建事件處理程序。
相關問題
- 1. 更新內容DIV,另一個DIV
- 2. 如何更改div內div的內容?
- 3. 更新HTML內容
- 4. 如何刷新一個div的內容
- 5. 以單個div更新內容,所有div名稱相同
- 6. jquery帶有新內容的更新div
- 7. 通過jquery更改另一個html的html div的內容
- 8. 如何更新DIV內容(如購物車DIV)
- 9. 更新HTML內容自動
- 10. 如何更新表單內容
- 11. div內出現的html內容div
- 12. 得到DIV的HTML內容是動態更新自身
- 13. 如何更改div的html並向其添加動態內容
- 14. jquery更新div中的內容
- 15. 更新所有div元素的內容
- 16. 使用javascript更新div的內容
- 17. 更新後的自動scrolldown DIV內容
- 18. 如何刷新jquery中div的內容?
- 19. 如何更改div的子內容?
- 20. 如何更改PHP中的div內容?
- 21. 如何更改div的內容
- 22. (更新)如何從帖子的單個*頁*獲取內容?
- 23. 如何根據菜單中選擇的內容更改div的內容
- 24. 打印HTML DIV的內容
- 25. HTML內容的div間距
- 26. HTML和div的內容
- 27. 的Html變化DIV內容
- 28. 如何更新ViewPager內容?
- 29. 如何更新的jQuery AJAX DIV的內容和ID
- 30. 更新DIV HTML和內容與阿賈克斯
這可能是過度殺傷,但如果你想抓住一個圖書館來完成一站式技術,我寫了一個名爲Lightning Touch的軟件:http://trott.github.com/LightningTouch/ – Trott 2012-07-30 00:55:15