我注意到以前从未遇到过的问题。 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."
这是某种特殊的逃脱角色吗?它是干什么用的?另外,这将是一个什么样的解决方案?
这是代码:
var msg = "This is my message <This is ignored";
document.write(msg);
&#13;
答案 0 :(得分:2)
这不是JavaScript的问题;这是您的代码的问题。这是问题所在,正如@Tomalak所建议的那样。
您正在使用innerHTML
而不是textContent
,它会尝试将字符串解析为带有属性的标记。
<This part is ignored>
→<this>
包含part
,is
和ignored
属性
答案 1 :(得分:1)
当您使用document.write()
撰写内容时,它只是插入该位置页面的HTML源代码中。因此,如果其中包含任何HTML标记,则会对其进行解析。以<
开头的任何内容都被视为HTML标记。如果您想撰写文字<
,请使用<
:
var msg = "This is my message <This is NOT ignored";
document.write(msg);
&#13;
你真的不应该首先使用document.write()
,这是1990年代的Javascript;分配给元素的innerHTML
或textContent
。 innerHTML
将被解析为HTML,textContent
将被视为文字文本而不会被解析。