首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符串javascript中插入换行符

在字符串javascript中插入换行符
EN

Stack Overflow用户
提问于 2017-06-12 21:58:38
回答 3查看 15.7K关注 0票数 1

如何在Javascript中插入换行符?下面的代码在一行中显示所有内容,即使使用换行符"\n“也是如此。

代码语言:javascript
复制
<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>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-12 22:01:10

innerHTML

如果在HTML源代码中添加一个换行符,会发生什么情况?

代码语言:javascript
复制
New
Line!

这是一个HTML问题。不是JavaScript问题。

如果您想在HTML中换行,则需要添加适当的元素。

最快和最糟糕的解决方案是<br>,也就是将整个内容包装在<pre>...</pre>中,但是内容的正确标记可能是列表或其他东西。您的示例代码太过泛型,无法辨别。

票数 5
EN

Stack Overflow用户

发布于 2017-06-12 22:07:44

我建议您使用<br>标签而不是"\n“。

https://jsfiddle.net/nav8kdg6/

你也可以访问这个主题,这是一个超文本标记语言的主题,但对于你的问题来说是一样的:Line break in html with \n

我希望我能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2019-06-22 01:08:25

您的代码行显示中没有\ns这一事实证明您实际上插入的是新行,而不是文字上的\s和ns。因此,您的代码正在执行预期的操作。

正如其他人所指出的,这里的问题不在于JavaScript代码本身,而在于HTML语言。在设置innerHTML时,不是将文本设置为文字,而是将其设置为页面活动HTML的一部分。

HTML是一种标记语言,因此,它不会完全按照编写的方式呈现,而是按照标记的要求呈现。在超文本标记语言中,空白在语法上被认为是无关紧要的,就像JavaScript和许多其他语言一样。这意味着任何空格,无论是水平空格(如空格和制表符)还是垂直空格(如换行符)都将由单个空格替换。因此,换行符将替换为空格。

在HTML中强制换行的正确方法是使用<br />标记,该标记插入一个换行符。但是,最佳实践表明,HTML更多的是使用上下文标记数据,而不是样式。可能有一个原因,您希望这些条目单独出现在行中。它们可能是唯一的条目,因此,它们可能应该在它们自己的“块级”元素中。一个流行的例子是创建段落的<p></p>标记。另一个示例是对列表项使用<li></li>,如下所示:

代码语言:javascript
复制
    <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中完成,但这说明了这一想法。这将是一种更健壮的方法来添加将形成新行的元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44501292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档