【问题标题】:jQuery textarea value doesn't convert line breaksjQuery textarea 值不会转换换行符
【发布时间】:2013-12-26 08:55:38
【问题描述】:

在将 JavaScript 中设置的字符串添加到 textarea 值时,它似乎可以很好地转换换行符。但是,当从数据属性中获取此字符串时,似乎将换行符保留为 \n

它们都有字符串类型,所以我很困惑一个是如何工作的,而不是另一个。

如何获取数据属性并使换行符与 textarea 一起使用?

<div id="test" data-message="this\ntest"></div>
<textarea id="textarea"></textarea>
<textarea id="textarea2"></textarea>
var html = 'this\ntest';
var div = $('#test').data('message');

$('#textarea').val(html);
$('#textarea2').val(div);

JSFiddle Example

【问题讨论】:

标签: jquery textarea line-breaks


【解决方案1】:

您需要在 HTML 属性中使用 HTML 字符实体进行换行:&amp;#13;

var html = 'this\ntest';
var div = $('#test').data('message');

$('#textarea').val(html);
$('#textarea2').val(div);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test" data-message="this&#13;test"></div>
<textarea id="textarea"></textarea>
<textarea id="textarea2"></textarea>

【讨论】:

  • 没问题,很乐意提供帮助。
【解决方案2】:

当您从数据属性中获取\n 时,它正在转义,因此您需要替换它:

$('#textarea2').val(div.replace("\\n","\n"));

Example

【讨论】:

  • 全局替换:div.replace(/\\n/g,"\n")
猜你喜欢
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
相关资源
最近更新 更多