我有一些简单的html编辑器。假设用户类型如下:
<p>Ok, this just & sucks :) –</p>
并保存到某个变量:
var content = "<p>Ok, this just & sucks :) –</p>";
现在,我正在使用jQuery将此文本附加到某个元素:
$(this).html(content); // where content is the string above
问题在于它被转义:
<p>Ok, this just &amp; sucks :) &ndash;</p>
如何使用&amp; amp;来获得精确的字符串?和&amp; ndash;并且还具有&lt;而不是&amp; lt;因为我需要html标签?
编辑:添加了更多详细信息
答案 0 :(得分:9)
问题不在于jQuery正在逃避实体。我想如果您使用console.log来编写content
字符串,您将看到您的编辑器正在将转义的实体返回给您。
.html()
vs .text()
的重点是.html()
适用于将被视为HTML的HTML。
答案 1 :(得分:1)
我猜你想拥有
正确显示文字<p>Ok, this just &amp; sucks :) &ndash;</p>
而不转换它们,以便&
和ndash;
不会转换为&
和-
,然后使用:< / p>
$(this).text(content);
这样做的一个问题是content
将作为this
元素的网站文本添加。它将不创建p
元素并将其附加到this
。
但是如果你想要获得转换的效果,那么你的代码就可以了。
我还想提一件事,我认为语言不是唯一与这些转换相关的语言。 浏览器在这些情况下扮演主要角色。那么,如果浏览器再次检查内容,我们会在脚本中做什么,它会将它们转换为&
和-
。