2013-02-04 46 views
5

我正在使用從後端代碼獲取HTML內容的jquery ajax請求。如果狀態正常,我將HTML內容附加到div。我正在使用以下代碼來使用jquery ajax附加div。如$('#divElm').html(response.data);。但經過附加我收到以下錯誤:SyntaxError使用jQuery.html插入包含腳本元素的HTML片段

SyntaxError: missing } in compound statement

HTML內容從後端渲染(即response.data)包含這是造成此錯誤的情況如下:

<script type="text/javascript"> 
function init() { 
if(d.getElementById('normal')){ 
    window.normalPop= d.getElementById('normal'); 
    //complicated is local 
    var complicated= normalPop.parentNode.removeChild(normal); 
    d.getElementsByTagName('body')[0].appendChild(complicated); 
    } 
} 
addLoadEvent(init); 
</script> 

我不知道爲什麼這個錯誤「SyntaxError:missing} in compound statement」即將到來。}大括號在代碼中正確關閉。

如果我使用innerHTML而不是html()它工作正常。渲染沒有錯誤。

+3

你的代碼不顯示任何jQuery - 是否缺少一些部分? – MarcoK

+0

@MarcoK它存在 - '$('#divElm').html(response.data)',其中'response.data'被認爲包含*發佈代碼的大部分。 – 2013-02-04 07:58:41

+1

這是如何「太本地化」?這是Jquery中的一個常見問題 - 由於包含在其中的腳本,jquery可能會觸發一個錯誤。解決方案是圍繞'.html(...)'嘗試一下。 – NoBugs

回答

2

The.html()使用.append(),它使用domManip()來執行腳本嗅探和執行。由於這個原因,來自後端的腳本代碼被執行並且在複合語句中導致了這個錯誤「SyntaxError:missing}」。 我通過腳本代碼進行了調查,腳本代碼中的註釋行(//)也對一些JS代碼進行了評論。因此,在將單行(//)更改爲多行註釋(/ ** ** /)之後。得到修復。感謝所有爲你的時間。

+1

在這裏有同樣的問題,令人難以置信的是,評論是壞人。 – fr4nk

相關問題