将innerHTML用于部分HTML

时间:2016-12-23 18:16:51

标签: javascript html innerhtml

以下功能

<script>
function new_par()
{
var beginning="<input id=";
document.getElementById("debug").innerHTML=beginning;
}
</script>

不产生输出,但如果我删除&#34;&lt;&#34;标志,确实如此。据推测,javascript避免了会破坏html页面的输出,但无论如何都会强制输出?

1 个答案:

答案 0 :(得分:0)

您将其分配给节点的innerHTML属性。当您将字符串插入DOM时,它会尝试将其解析为HTML。如果您只是将其添加为文本节点,则会出现。

var beginning="<input id=''";
document.body.textContent = beginning;

https://jsfiddle.net/2patzyo1/

修改:再次查看您的问题时,如果您尝试以使输入元素显示在页面上,则您使用的字符串不是正确的HTML,因为你从未关闭标签。当浏览器遇到它时,它会尝试解析并渲染它,但由于它无效,它会放弃。这将有效:

var beginning="<input id=''>";
document.body.innerHTML = beginning;

https://jsfiddle.net/2patzyo1/1/