我需要从具有段落和跨度和其他内容的 div 中提取文本并将其放入 textarea 中。我只需要加载文本,而不是 HTML。
为此,我可以使用:
loadtext = $('#mydiv').text();
但是,我确实需要保留换行符。
为此,我正在做:
loadtext = $('#mydiv').text().replace(/<br>/gm, '\r\n');
但它似乎不起作用,因为当我将该文本加载到文本区域时,它都是平坦的,没有换行符。难道我做错了什么?
我需要从具有段落和跨度和其他内容的 div 中提取文本并将其放入 textarea 中。我只需要加载文本,而不是 HTML。
为此,我可以使用:
loadtext = $('#mydiv').text();
但是,我确实需要保留换行符。
为此,我正在做:
loadtext = $('#mydiv').text().replace(/<br>/gm, '\r\n');
但它似乎不起作用,因为当我将该文本加载到文本区域时,它都是平坦的,没有换行符。难道我做错了什么?
$('#mydiv').text()
已经被剥离了所有的 HTML,包括<br>
元素,所以这不起作用。您需要修改#mydiv
元素的 HTML 并替换所有<br/>
元素,然后检索文本。
$('#mydiv').find('br').each(function(){
$(this).after("\n")
.remove();
});
var loadtext = $("#mydiv").text();
另一种解决方案是使用从未添加到文档中的中间元素。
var html = $('#mydiv').html(); // e.g. '<p>line 1</p><br><br><p>line 2</p>'
var text = $('<div>').html(html.replace(/<br\/?>/g, '\n')).text();
/* text =
"line 1
line 2"
*/
$('#mytextarea').text(text);
这支持<br>
(HTML) 和<br/>
(XHTML)。