2013-07-23 310 views
0

我敢肯定,這是一個相當基本的問題,但我對jQuery相對較新,所以希望有人能夠提供幫助。簡單的jQuery .load示例不工作

基本上,我需要將HTML代碼片段加載到頁面中。當代碼片段只包含HTML時,這很好,但當它包含腳本時不會。

爲了清晰起見,我已經將代碼剝離到了最低限度。這是index.html的:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>  
</head> 
<body> 
<h1>Heading</h1> 
<div id="banner"></div> 
<script> 
$(document).ready(function(){ 
    $('#banner').load('banner.html'); 
}); 
</script> 

</body> 
</html> 

而且banner.html只包含以下(舉例):

<h2>Subheading</h2> 
<script> 
document.write('Hello'); 
</script> 

腳本執行,但由於某種原因它剔除的休息index.html和banner.html中的HTML(即它只顯示「Hello」,沒有其他)。

任何幫助非常感謝!

回答

4

document.write在頁面加載寫入文檔之後,同樣覆蓋文檔中當前的所有內容,這就是爲什麼最後只有字符串「hello」。

只需刪除該文件寫道:

<h2>Subheading</h2> 
<p id="test"></p> 
<script> 
    document.getElementById('test').innerHTML = 'hello'; 
</script> 
+0

+1完美的解釋:) – dreamweiver

+0

@dreamweiver - 謝謝 ! – adeneo

0

被加載banner.html當你的文檔中(這裏的文件是監守..裏面的腳本banner.html得到執行,其中寫道:「你好」您的整個index.html)

瞭解這一點的一種方法是通過替換banner.html的某些內容而不是整個文檔。

banner.html

<h2>Subheading</h2> 
<div id="divID"></div> 
<script> 
    $('#divID').html('hello'); //using jquery .. gets the element with id as divID and replace the HTML 
</script> 

我在這裏僅更換ID爲 「DIVID」 股利而不是替換enrite文件