【问题标题】:How to write newline using jquery?如何使用 jquery 编写换行符?
【发布时间】:2016-09-30 18:37:44
【问题描述】:

我的 java 程序会读取一个格式化的 txt 文件,并将其内容作为字符串发送到前端。 发送到前端的字符串如下所示:

var result = "This is the result.\nIt contains some details\n\nDetails are as follows\nabc,xyz"

在前端,这些数据必须以如下格式写入一个div:

This is the result.
It contains some details

Details are as follows
abc,xyz

使用以下代码不起作用:

$("#divId).html(result);

val()、text() 等替代方法也不起作用。 如何让浏览器在显示结果时在 div 中写入新行?

【问题讨论】:

  • 你可以使用<br>
  • 突出显示文本并查看源代码:它有换行符。您正在寻找 html <br>,而不是换行符。
  • Java 之于 javascript 就像汽车之于地毯一样。笑一笑:stackoverflow.com/a/245073/870729

  • 帮助了文本。谢谢!该文件还有一些格式化的表格内容。这是使用 String.format() 写入文件的。在前端写入结果时,有没有办法保留该格式?

标签: javascript jquery html string newline


【解决方案1】:

将换行符转换为<br>s

$("#divId).html(result.replace(/\n/g, "<br />"));

【讨论】:

  • 打败我。 :)
  • 需要使其全局化,否则它将仅适用于第一行
【解决方案2】:
  $('#divId').html("<pre>" + result + "</pre>");

【讨论】:

  • &lt;pre&gt; 具有特定的语义含义。避免 HTML 标签不是一种偷懒的方式。
  • 表示此文本已预先格式化,保持原样。它可以用另一种字体和css进一步定制。我不认为这很糟糕。不过,他仍然应该对消息进行 html 编码。
  • 我应该读那个东西吗,因为有人认为他知道一切都更好。我没有混淆任何东西,你只是没有尊重。
  • 使用
     有助于保留文本文件中存在的表格的格式。谢谢!
【解决方案3】:

这样使用

var result = "This is the result.\nIt contains some details\n\nDetails are as follows\nabc,xyz" 
var res = result.replace(/\n/g, "<br>");
$("#divId).html(res);

【讨论】:

    【解决方案4】:

    让我们考虑一个简单的 HTML 源文件。

    Hello
    
    2 new lines.
    
    
    
    3 new lines.

    让我们考虑另一个:

    Hello&lt;br&gt;The magic of HTML tags!

    您将换行符与 HTML &lt;br&gt; 标记混淆了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 2011-12-25
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-30
      相关资源
      最近更新 更多