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

发布于 2024-12-01 21:17:24 字数 1252 浏览 0 评论 0原文

我有一个正在网页上呈现的 html 表,我在 jquery 查找中使用该表将值插入文本区域。

呈现的表格具有 ,其中包含这样的数据

<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 标签,当然也没有换行符。

有什么好的 jquery 或 javascript 方法可以将该数据插入到我的 textarea 字段中,并且至少在 textarea 中保留换行符?

所以基本上我需要一个函数来将这个字符串

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

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

<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>

I have an html table that is being rendered on a web page that I using in a jquery lookup to plug values into textarea.

The table that is rendered on has <td>s with data like this

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

and

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

which appears like this on the page.

Hello

line 2

and

1
2
3

I'm using some jquery to pull that data of the hmtl table and insert it into a textarea textbox.. but when I do I'm just see a long string of text without the html tags and certainly no line feeds.

What's a good jquery or javascript way to insert that data into my textearea field that at least linefeeds are preserved in the textarea?

So basically I need a function that would turn this string

Any way in jquery or javascript for form that html data so that at least line feeds are preserved in my multiline textarea?

=== full code here.. basically doing a lookup of some table on my page and using it to plug in values in a two textxboxs:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你与清晨阳光 2024-12-08 21:17:24

尝试使用正则表达式。如果您想支持其他标签,则必须将它们包含在正则表达式中。这里还支持

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

注意:您可能需要从输出中删除四重“\n”。

Try using regex. If you want to to support other tags, you will have to include them in the regex. The one here supports
also:

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

note: you may need to trim quadruple '\n' from your output.

绿萝 2024-12-08 21:17:24

像这样的东西:

var textAreaInput = '';

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

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

Something like:

var textAreaInput = '';

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

$('p').each(getTextFromElement);
$('div').each(getTextFromElement);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文