繁体   English   中英

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

[英]Can't set innerHTML when using strings that start with '<'

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

var text = "<i wont print"
text = "i will print!"
trans_txt.innerHTML = text;

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

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

<i后跟一个空格是“开始一个<i> (惯用/斜体)标签”的 HTML 语法,因为解析器看不到标签定义的结尾(即一个> ), <i和结束被认为是一个错误并被丢弃。

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

 var text = "<i wont print" document.body.textContent = text;

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

不要使用innerText - 最好在几乎所有情况下都更喜欢textContent

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM