换行符不适用于 jQuery .text()

kss*_*kss 2 javascript jquery loops line-breaks key-value

我有以下代码:-

function data(x) {
     var dataList = "";
     for (var key in obj) {
          dataList += key + ": " + obj[key] + "\n"
     }
     $('#modalText').text(dataList);
     document.getElementById('dataModal').style.display='block';
}
Run Code Online (Sandbox Code Playgroud)

它会像这样填充 HTML:

<p id="dataList"></p>
Run Code Online (Sandbox Code Playgroud)

尽管在循环的每次迭代中我都有一个 '\n' 连接到我的字符串,但我无法在每个键/值对之后获得换行符以显示在我的模式中。我也尝试过 jQuery .append() 函数而不是 .text(),但无济于事。

我的变量 dataList 在控制台中以正确的换行符打印,如下所示:

key: 123
time: 12:00
department: taxes
Run Code Online (Sandbox Code Playgroud)

但是在模态中打印时,没有换行符:

key: 123 time: 12:00 department: taxes
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它在我的模式中显示,在每个键值对之后换行,就像它在控制台中显示的那样?

mho*_*ges 5

空格在 HTML 中没有任何意义。您需要使用<br/>并设置.html(),或者您需要将 a 添加white-space: pre到您的 dataList<p>标记。使用prepre-wrap将尊重空格(因此 \n 字符)

  • @kss 请注意,如果您的 `dataList` 属性将包含 html 标签或实体,结果将不会很好,因为它们将被视为 HTML。在您的情况下,`white-space:pre` 可能是更好、更安全的解决方案。 (2认同)