保留从HTML中提取的文本中的换行符

时间:2011-08-29 20:28:50

标签: javascript jquery textarea newline

我有一个html表,正在我在jquery查找中使用的网页上呈现,以将值插入textarea。

呈现的表格具有<td> s,其数据类似

<td class="ms-vb"><p>Hello.&nbsp;</p><p>&nbsp;line2</p>

<div>1</div><div>2</div><div>3</div>

在页面上显示如下。

Hello

line 2

1
2
3

我正在使用一些jquery来拉取hmtl表的数据并将其插入到textarea文本框中..但是当我这样做时,我只看到一长串没有html标签的文本,当然也没有换行符。

将这些数据插入到我的textearea字段中是什么样的jquery或javascript方法,至少在textarea中保留了换行符?

所以基本上我需要一个可以转动这个字符串的函数

在jquery或javascript中以任何形式表示html数据,以便至少在我的多行文本区域中保留换行符?

===这里的完整代码..基本上在我的页面上查找某些表并使用它来插入两个textxbox中的值:

<script type="text/javascript"> 
$('select[title$=Issue Type] option:eq(0)').text("Please Select").val(""); 
$('select[title$=Issue Type]').change(function(){
var issue = $('select[title$=Issue Type] :selected').text();
var bodyprefixes = [];
$('#issuetbl td:contains('+issue+')').nextAll().each(function(i, k) {
bodyprefixes.push($(k).text());
});
$('input[title$=Subject]').val(bodyprefixes[1]);
$('input[title$=Message]').val(bodyprefixes[0]);
});
</script>

2 个答案:

答案 0 :(得分:1)

尝试使用正则表达式。如果要支持其他标记,则必须将它们包含在正则表达式中。这里的人也支持:

$('#txtarea').text(
    $('td.ms-vb').text()
        .replace(/<\/?(br|div|p)\/?>/g, "\n\n")
        .replace(/<[^>]+>/g, "")
);

注意:您可能需要从输出中修剪四倍'\ n'。

答案 1 :(得分:0)

类似的东西:

var textAreaInput = '';

var getTextFromElement = function() {
  textAreaInput += $(this).text() + '\n';
};

$('p').each(getTextFromElement);
$('div').each(getTextFromElement);