换行符不会连接

Posted

技术标签:

【中文标题】换行符不会连接【英文标题】:Line Break Won't Concatenate 【发布时间】:2019-01-17 12:21:29 【问题描述】:

我正在尝试以网格格式打印 9x9 2D javascript 数组,但无法通过换行符连接成可打印的字符串。当我想在方形网格中打印时,它会在一行中打印整个数组。代码如下:

function printBoard(board) 
    var toPrint = "";

    for (var i = 0; i < board.length; i++) 
        for (var j = 0; j < board.length; j++) 
         toPrint += board[i][j] + " ";
        
        toPrint += "\n";
    
    document.getElementById("printBoard").innerhtml = toPrint;

有人看到我没有看到的明显东西吗?我是 JavaScript 新手,所以如果它是一个明显的错误,请放轻松,但我不只是看到它。 innerHTML 函数不打印多行吗?它的 HTML 方面非常简单:

<p id="printBoard"></p> 

【问题讨论】:

在html中,需要 一个带有标签jsfiddle.net/708rw1zf/1的例子 Add a "new line" in innerHTML的可能重复 【参考方案1】:

换行符在 HTML 中大部分时间都不做任何事情。您需要使用换行元素:&lt;br /&gt;,或将所有内容放入预格式化元素:&lt;pre&gt;&lt;/pre&gt;

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre

【讨论】:

修复了它。谢谢大家!【参考方案2】:

HTML 中的换行符是&lt;br&gt;

另外,你的内部循环应该被初始化为for (var j = 0; j &lt; board[i].length; j++)。要了解原因,请考虑数组 [[1, 2, 3], [1, 2 ,3]]。您当前的实现将打印

    1 2
    1 2

因为 board.length 是 2。

http://jsbin.com/focofecadi/1/edit?html,js,console,output

【讨论】:

以上是关于换行符不会连接的主要内容,如果未能解决你的问题,请参考以下文章

jQuery textarea 值不会转换换行符

securecrt 不自动换行

iOS:当参数包含换行符时,evaluateJavaScript 不会调用函数

Perl 不会在没有换行符的情况下打印多个变量

来自 textarea 和 mysql 的换行符不会出现在 html 中

将 "\n" 添加到 Java String 时,换行符不会出现在 JSP 中,但会出现在标准输入中