以下功能
<script>
function new_par()
{
var beginning="<input id=";
document.getElementById("debug").innerHTML=beginning;
}
</script>
不产生输出,但如果我删除&#34;&lt;&#34;标志,确实如此。据推测,javascript避免了会破坏html页面的输出,但无论如何都会强制输出?
答案 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;