javascript - 为什么 pre 标签后的换行符消失了?

标签 javascript html dom

为什么紧跟在

 标签之后的新行没有出现在 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 标签后的换行符不同,前置标签后的换行符似乎不在 dom 中。而且整个innerHTML在pre-tag后没有显示换行。

有没有办法在 JS 中找出原始 HTML 文档是否在

 之后包含换行符?

最佳答案

因为那是 what the spec says to do :

Note: In the HTML syntax, a leading newline character immediately following the pre element start tag is stripped.

所以如果你想在那里换行,有点违反直觉,你必须添加一个额外的:Example

<pre id="mypre">

hello
pre
world
</pre>

旁注:我强烈建议始终包含一个文档类型,即使是在您问题中的简短示例中也是如此。它可以产生影响(尽管我认为在这种情况下不会产生影响)。

关于javascript - 为什么 pre 标签后的换行符消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23969607/

相关文章:

javascript - 动态输出handlebar emberjs中每个循环内的表达式

javascript - AngularJs 不将 ng-checked 与 ng-model 绑定(bind)

javascript - 在 HTML5 服务器发送事件中设置时间间隔

html - 单击删除线

PHP:显示 HTML 的前 500 个字符

php - HTML DOM 解析器 - 获取纯文本

javascript - 通过链接到具有不同数量参数的构造函数来实例化类

javascript - 什么是 _ctl0 javascript 以及我们何时使用它

javascript - 使用 HTML5 本地存储保存 View 状态

javascript - 单击后可以加载窗口吗?