<div class="cardtitle">WEB</div>
<textarea id="web">
abc
abc
abc
</textarea>
<div id="btnprint">PRINT</div>
JS
tosend = '';
$('#btnprint').click(function(){
$('.cardtitle').each(function(){
tosend = tosend +
$(this).text().toUpperCase() + '<br>' +
$(this).next().val() +
'<hr>'
});
w=window.open();
w.document.write(tosend);
w.print();
w.close();
});
结果是abc abc abc
而不是:
abc
abc
abc
新线路丢失。
答案 0 :(得分:2)
将其包裹在<pre>
标记中,以便格式不会丢失。
$('#btnprint').click(function(){
var tosend = '<pre>';
$('.cardtitle').each(function(){
tosend = tosend +
$(this).text().toUpperCase() + '<br>' +
$(this).next().val() +
'<hr>'
});
tosend += '</pre>';
w=window.open();
w.document.write(tosend);
w.print();
w.close();
});
答案 1 :(得分:1)
新行字符不会在HTML中呈现为换行符。您需要使用<br>
标记才能开始新行。
您可以做的是用<br>
s替换换行符:
...
$(this).next().val().replace(/[\n]/g, "<br>")
...