为什么紧跟在< pre>之后的新行标签没有出现在DOM?
<html>
<body>
<div id="mydiv">
hello
div
world
</div>
<pre id="mypre">
hello
pre
world
</pre>
<script>
alert("div content: "+document.getElementById("mydiv").innerHTML)
alert("pre content: "+document.getElementById("mypre").innerHTML)
</script>
</body>
</html>
显示与div-tag之后的换行符不同,pre-tag之后的换行符似乎不在dom中。此外,整个身体的innerHTML在预标签后也没有显示换行符。
有没有办法在JS中找到原始HTML文档在&lt; pre&gt;之后是否包含换行符?不是吗?
答案 0 :(得分:7)
注意:在HTML语法中,将删除紧跟
pre
元素开始标记之后的前导换行符。
因此,如果你想要那个换行符,有点违反直觉,你必须增加一个:Example
<pre id="mypre">
hello
pre
world
</pre>
附注:我强烈建议您始终包含doctype,即使是在您的问题中的简短示例中也是如此。它可以有所作为(虽然在这种情况下我不认为它。)
答案 1 :(得分:3)
注意在HTML语法中,将删除紧跟在 pre 元素开始标记之后的前导换行符。
我认为这样做是为了让你不必写:
<pre>Some text
some more
and more
</pre>
避免在开头有额外的换行符。你可以写:
<pre>
Some text
some more
and more
</pre>
如果您使用<pre>
排列列,这非常有用,因为第一种格式不允许您正确排列第一行。
如果您想在预格式化文本的开头添加额外的换行符,请在标记后面加一个空行:
<pre id="mypre">
hello
pre
world
</pre>