使用以“<”开头的字符串时无法设置innerHTML

Dan*_* me 0 html javascript css

我有一个 textarea,它将用用户输入的内容填充另一个部分,只要我不输入以“<”开头的任何内容,我的代码就可以正常工作。每当我有一个像“<anything else can follow”这样以“<”开头的字符串时,它就不会设置innerhtml。

var text = "<i wont print"
text = "i will print!"
trans_txt.innerHTML = text;
Run Code Online (Sandbox Code Playgroud)

“<”是innerhtml的某种覆盖字符吗?我想知道是否有人知道发生了什么,是否有一种方法可以将文本 var 更改为纯字符串,而不必担心我的字符串不显示。

编辑:我意识到这一点是因为默认的 textarea 消息是“<text area”

Cer*_*nce 8

<i后跟一个空格是“开始一个<i>(惯用的/斜体)标签”的HTML 语法,因为解析器没有看到标签定义的结尾(即 a >),所以在 the<i和 end之间的所有内容都被认为是错误并被删除.

如果您只想插入纯文本,请textContent改用:

var text = "<i wont print"
document.body.textContent = text;
Run Code Online (Sandbox Code Playgroud)

textContent也更快更安全。仅innerHTML在有意插入 HTML 标记时使用。

不要使用innerText-最好的喜欢textContent,而不是在几乎所有情况