Javascript:添加'<'似乎打破了HTML

时间:2015-02-10 16:41:28

标签: javascript

我有一个场景,我有字符串'<'在里面。一个例子是

<a href='#'>foobar</a> foo <bar

使用本机JavaScript(innerHTML)以及jQuery(.html()),在尝试将其添加到DOM时,文本包括&lt;被剥夺了

<a href='#'>foobar</a> foo

我试图逃避&#39;&lt;&#39;然而,它也逃脱了<a>。锚点不是唯一可能存在的html标记,因此我如何以这样的方式处理:我只能编码&#39;&lt;&#39;这不属于任何html实体。

问题的一个例子 - http://jsfiddle.net/ovbg3p8m/

请注意我从其他地方获取整个HTML并且必须使用它。

感谢。

6 个答案:

答案 0 :(得分:1)

您可以使用&lt;代替小于号码。

答案 1 :(得分:1)

使用&lt;,而不是<

答案 2 :(得分:0)

尝试使用HTML名称列here中的相应条目。

答案 3 :(得分:0)

&lt;

是逃避你对这个符号的渴望 关键是要逃避需要转义的内容而不是标记,因为这是你要保留的HTML。

答案 4 :(得分:0)

假设您构建HTML,如:

var text = "foo <bar";
var link_text = "foobar";
var html = '<a href="#">' + link_text + '</a>' + text;
$(".node").html(html);

如果你只是逃避textlink_text(但不是html)你很好。

什么是HTML和什么不是非常重要。


在PHP中,有一个函数htmlspecialchars用它们的转义表单替换&, ", ', <>&amp; &quot; &apos; &lt; &gt;。这足以避免破坏HTML。

答案 5 :(得分:0)

你必须逃避&lt;

var text = '<a href="#">foobar</a> foo &#60;bar foobar';

在此处查找更多信息 Escape html