我有一些简单的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;的精确字符串?和&ndash;并且还有<而不是&lt;因为我需要html标签?
编辑:添加了更多细节
2 回答
问题不在于jQuery正在逃避实体 . 我想如果您使用console.log来编写
content
字符串,您将看到您的编辑器正在向您返回转义实体 ..html()
vs.text()
的重点是.html()
适用于将被视为HTML的HTML .我想你想要完全显示文本
<p>Ok, this just &amp; sucks :) &ndash;</p>
而不转换它们,这样&
和ndash;
将不会转换为&
和-
,然后使用:这样做的一个问题是
content
将作为文本添加到this
元素的站点中 . 它将 not 创建一个p
元素并将其追加到this
.但是如果你想要获得转换效果,那么你的代码应该可行 .
One more thing I want to mention, 我认为语言不是唯一与这些转换相关的语言 . Browser 在这些案件中扮演主要角色 . 那么,如果浏览器再次检查内容,我们将在脚本中做什么,它会将它们转换为
&
和-
.