带有比较符号的JavaScript字符串被忽略?

时间:2017-10-14 07:30:27

标签: javascript string

我注意到以前从未遇到过的问题。 JavaScript中包含<的字符串将被忽略。这是为什么?以下是我注意到的一些结果:

msg = "<This entire string would be ignored."
msg = "This part of the string is ok. <While this part is ignored."
msg = "<This part is ignored> But this half of the string will still print."

这是某种特殊的逃脱角色吗?它是干什么用的?另外,这将是一个什么样的解决方案?

这是代码:

&#13;
&#13;
var msg = "This is my message <This is ignored";
document.write(msg);
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

这不是JavaScript的问题;这是您的代码的问题。这是问题所在,正如@Tomalak所建议的那样。

您正在使用innerHTML而不是textContent,它会尝试将字符串解析为带有属性的标记。

<This part is ignored><this>包含partisignored属性

答案 1 :(得分:1)

当您使用document.write()撰写内容时,它只是插入该位置页面的HTML源代码中。因此,如果其中包含任何HTML标记,则会对其进行解析。以<开头的任何内容都被视为HTML标记。如果您想撰写文字<,请使用&lt;

&#13;
&#13;
var msg = "This is my message &lt;This is NOT ignored";
document.write(msg);
&#13;
&#13;
&#13;

你真的不应该首先使用document.write(),这是1990年代的Javascript;分配给元素的innerHTMLtextContentinnerHTML将被解析为HTML,textContent将被视为文字文本而不会被解析。