将div HTML复制到textarea但保留换行符

时间:2013-04-10 13:56:57

标签: javascript jquery

我正在制作问卷调查应用程序,其中一项功能是用户可以点击问题并进行编辑。我遇到的问题是将<br />标记转换为我的textarea会理解的换行符。

保存代码如下所示:

$('#questions').append("<div>"+$('textarea[name="question"]').val().replace(/\n/g, '<br />')+"</div");

这完美无缺!将其转换回的代码如下所示:

$('textarea[name="question"]').val($('#questions').eq(1).html().replace(/<br\s*\/?>/mg,"\n"));

但由于某种原因,textarea不接受新行,只是将所有文本捆绑在一起。

如何将<br />转换回我的textarea可以理解的新换行符?

2 个答案:

答案 0 :(得分:3)

尝试

$('textarea[name="question"]').val($('#questions').eq(1).html().replace(/\s*<br\s*\/?>\s*/g,"\n"));

演示:Fiddle

答案 1 :(得分:0)

您需要将<br>'s转换为HTML编码的换行符。

&#10;换行和&#13;回程。这样,您实际上是在解析新行(“\ n”)而不是将其显示为文本。

New line in text area