2011-09-08 128 views
6

我有HTML數據存儲在數據庫中,我希望按原樣顯示。它不斷將
標籤轉換爲&lt;br /&gt;,這是我不想要的行爲。我曾嘗試使用JavaScript替換,仍然無法將其轉換爲常規HTML。爲什麼我的「<br />」標籤轉換爲「< br/>」?

var venueaddress = msg.result[0].venueaddress; 
    var venueaddress2 = venueaddress.replace("[newline]", "<br />"); 

       alert(venueaddress2); //shows <br /> 


$("#venueaddress").text(venueaddress2); //lets now display it on the browser 

<li><h3>Venue Address</h3><p><strong> <span id="venueaddress"></span> </strong></p></li> 

然而,當它呈現在瀏覽器,它具有< BR/>,有前有沒有斷線。

+3

您可以粘貼代碼將HTML添加到您的頁面的位置 –

+0

您是否在將HTML存儲到數據庫之前對HTML進行編碼?你試圖顯示標記完整的HTML? –

+0

檢查這個帖子http://stackoverflow.com/questions/1147359/jquery-decode-html-entities – Samich

回答

7

你的問題是與

$("#venueaddress").text(venueaddress2); 

你應該使用

$("#venueaddress").html(venueaddress2); 

文本將編碼任何HTML字符,將在跨顯示爲編碼的HTML不會。

+0

謝謝我完全錯過了。 – jini

2

大概是因爲當你將它插入到DOM中時,你將它插入爲文本而不是HTML。

既然你沒有顯示你用來做這件事的代碼,很難說肯定,或說什麼是改變它的最好方法,所以它期望HTML會。

+0

你是絕對正確 – jini

0

您的html數據正在被「轉義」。這可以防止人們在他們的瀏覽器上將<script>標籤發送給不知情的人。

修復:首先,您需要確定問題是「錯誤」還是「功能」。

轉義html通常是件好事。特別是如果唯一的問題是演示文稿。

例如,解決辦法可能是插入換行符而不是br元素。