jQuery textarea值不转换换行符

时间:2013-12-09 09:36:53

标签: jquery textarea line-breaks

在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

2 个答案:

答案 0 :(得分:6)

您需要在HTML属性中使用HTML字符实体进行换行:&#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>

答案 1 :(得分:3)

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

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

Example