在textarea中插入文本无法识别新行

时间:2011-09-30 12:40:30

标签: javascript jquery

我正在阅读<td>并将文字插入文本区域,但所有文字都出现在一行中。我想将textarea中的格式保留为从列中读取的文本。

 $("#text").text($.trim($(this).closest('tr').next('tr').find('.mytext).text()));

文字应为

 my test is working with spaces but not with new line.  <br />This is a new line.

但它似乎无法解释<br/>。如何让它读取<br/>并在textarea中显示一个新行。

3 个答案:

答案 0 :(得分:2)

您使用.text()将不会获得<br />,因为这不是文本。

来自docs

  

获取匹配集合中每个元素的组合文本内容   元素,包括它们的后代。

请注意,文本内容。我不知道如果文本中有“真正的”换行符(而不是html换行符)会发生什么,但这是你想看看你的问题的地方。

答案 1 :(得分:1)

用\ n字符替换br元素,我认为应该有效。

答案 2 :(得分:0)

假设您正在提取原始HTML(<br />标记完整而不仅仅是文本),请按照JNDPNT建议,将所有<br />标记替换为\n文字:

 var input = 'my test is working with spaces but not with new line.<br />This is a new line.'; // This is a simulation of an input string

// Create the output (replace all <br /> tags with \n):
var output_text = input.replace(new RegExp('<br />', 'g'), '\n');
$('#output').val(output_text);

这是一个显示它正常工作的jsFiddle:

http://jsfiddle.net/xYHjn/