如何在Javascript中插入换行符?下面的代码在一行中显示所有内容,即使使用换行符"\n“也是如此。
<body>
<button onclick="myFunction()">Click me</button>
<div id="demo" onclick="myFunction()"></div>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "line1\nline2\nline3\nline4\nline5\nline6";
}
</script>
</body>
发布于 2017-06-12 22:01:10
innerHTML
如果在HTML源代码中添加一个换行符,会发生什么情况?
New
Line!
这是一个HTML问题。不是JavaScript问题。
如果您想在HTML中换行,则需要添加适当的元素。
最快和最糟糕的解决方案是<br>,也就是将整个内容包装在<pre>...</pre>中,但是内容的正确标记可能是列表或其他东西。您的示例代码太过泛型,无法辨别。
发布于 2017-06-12 22:07:44
我建议您使用<br>标签而不是"\n“。
https://jsfiddle.net/nav8kdg6/
你也可以访问这个主题,这是一个超文本标记语言的主题,但对于你的问题来说是一样的:Line break in html with \n。
我希望我能帮到你。
发布于 2019-06-22 01:08:25
您的代码行显示中没有\ns这一事实证明您实际上插入的是新行,而不是文字上的\s和ns。因此,您的代码正在执行预期的操作。
正如其他人所指出的,这里的问题不在于JavaScript代码本身,而在于HTML语言。在设置innerHTML时,不是将文本设置为文字,而是将其设置为页面活动HTML的一部分。
HTML是一种标记语言,因此,它不会完全按照编写的方式呈现,而是按照标记的要求呈现。在超文本标记语言中,空白在语法上被认为是无关紧要的,就像JavaScript和许多其他语言一样。这意味着任何空格,无论是水平空格(如空格和制表符)还是垂直空格(如换行符)都将由单个空格替换。因此,换行符将替换为空格。
在HTML中强制换行的正确方法是使用<br />标记,该标记插入一个换行符。但是,最佳实践表明,HTML更多的是使用上下文标记数据,而不是样式。可能有一个原因,您希望这些条目单独出现在行中。它们可能是唯一的条目,因此,它们可能应该在它们自己的“块级”元素中。一个流行的例子是创建段落的<p></p>标记。另一个示例是对列表项使用<li></li>,如下所示:
<body>
<button onclick="myFunction()">Click me</button>
<div id="demo" onclick="myFunction()"></div>
<script>
function myFunction() {
var list = document.createElement("ul");
list.style.listStyleType = "none";
for (var i=1; i <= 6; i++) {
var item = document.createElement("li");
item.appendChild(document.createTextNode("line" + i));
list.appendChild(item);
}
document.getElementById("demo").appendChild(list);
}
</script>
</body>
理想情况下,样式应该在CSS中完成,但这说明了这一想法。这将是一种更健壮的方法来添加将形成新行的元素。
https://stackoverflow.com/questions/44501292
复制相似问题