2013-01-08 108 views
0

在我的頁面中,有一個div,我必須從javascript中顯示html。所以在JavaScript中,我附加了CDATA標籤,以便將html顯示爲數據。以下是我用添加CDATA標籤時編碼的HTML標籤

var htmlCode = '<h>testing html</h>'; 
htmlCode = '<![CDATA[' + htmlCode+ ']]>'; 
$('myDiv').html(htmlCode); 

這實際上顯示testing html]]>作爲最後>轉化爲&gt;當我把它分配給div的HTML代碼。任何想法如何解決這個問題

在此先感謝

+0

是的,現在有什麼問題? *最後'>'在*時轉換爲... ...所以? –

+1

@SathyeshSelvarajah:問題沒有正確格式化。 –

+1

人們只是發佈問題,甚至沒有檢查它如何呈現。無論如何,感謝編輯@RocketHazmat! –

回答

3

CDATA在XML文件中被使用。這意味着裏面的內容被視爲文本。 jQuery的.html()<![CDATA[<h轉換爲<!--[CDATA[<h-->,這是一條評論。然後,它忽略了開盤時缺失的</h>標籤。所以,它顯示testing html]]>

如果要將HTML顯示爲文本,只需使用.text()而不是.html()。它會爲你逃脫,所以它不會被瀏覽器解析。

var htmlCode = '<h>testing html</h>'; 
$('#myDiv').text(htmlCode); 

編輯:你說你想要的HTML 解析,那麼就使用.html

var htmlCode = '<h>testing html</h>'; 
$('#myDiv').text(htmlCode); 

CDATA是不在任一情況下需要的。

+0

在div中,我想顯示html而不是html的文本。它應該顯示「測試html」而不是「測試html Ankit

+0

@Ankit:然後只是'.html(html代碼)'。你不需要'CDATA',不知道你爲什麼這樣。 –

+0

@Hazmat: htmlcode可能不是格式化好的html,所以我需要把它作爲CDATA – Ankit

-1

試試這個:

var htmlCode = '<h>testing html</h>'; 
htmlCode = '<![CDATA[' + htmlCode+ ']]>'; 
$('myDiv').html(unescape(htmlCode));