在新窗口上写 - 新线路丢失

时间:2016-09-18 08:45:00

标签: jquery html

<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

新线路丢失。

2 个答案:

答案 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>")
...