为什么我的“<br/>”标签会转换为“&lt; br /&gt;”?

时间:2011-09-08 19:56:43

标签: javascript html json

我将HTML数据存储在数据库中,我希望按原样显示。它不断将
标签转换为&lt;br /&gt;,这是我不想要的行为。我尝试过使用javascript替换,但仍然无法将其转换为常规HTML。

    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>

然而,当它在浏览器上呈现时,它具有&lt; br /&gt;因此没有换行符。

5 个答案:

答案 0 :(得分:7)

你的问题在于

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

你应该使用

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

文本将对任何html字符进行编码,并将以span编码显示,html不会。

答案 1 :(得分:3)

&lt;br /&gt; == <br />您只需need to Decode输出即可获取原始HTML。

Use javascript unescape function

答案 2 :(得分:2)

大概是因为当你将它插入DOM时,你将它作为文本而不是HTML插入。

由于您没有显示您用来执行此操作的代码,因此很难确定,或者说要更改它的最佳方法是什么,因此它会期望HTML。

答案 3 :(得分:1)

您还可以使用实际的<br/>标签替换字符。

myString.replace(/&lt;br&gt;/g, '<br/>')

答案 4 :(得分:0)

您的html数据正在“转义”。这可以防止人们在浏览器中向不知情的人发送<script>标记。

修复:首先,您需要确定您的问题是“错误”还是“功能”。

逃避HTML通常是一件好事。特别是如果唯一的问题是演示文稿之一。

例如,解决方法可能是插入换行符而不是br元素。