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