jQuery textarea值不转换换行符

问题描述 投票:6回答:2

添加一个字符串,在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
2个回答
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>

3
投票

当您从数据属性中获取它时,qqxxswpoi将被转义,因此您需要替换它:

\n

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

© www.soinside.com 2019 - 2024. All rights reserved.