我正在使用以下脚本将某个div打印为pdf文件。
(function ($) {
$('.print-me').on('click', function () {
var $areaToPrint = $($(this).data('print-me'));
var $hiddenAreas = $('.hide-print');
if ($areaToPrint.length) {
$hiddenAreas.hide();
$areaToPrint.show();
window.print();
$hiddenAreas.show();
}
});
})(jQuery);
但是我无法在同一pdf上打印多个具有不同id的div。
我的猜测是您将要打印的元素的ID放入$(this).data('print-me')
。这使得很难选择多个元素。
要实现所需的功能,应为所有div
要打印的s(即.printable
)分配一个类。那可以让你
var $areaToPrint = $('.printable');
并获得几个要素。其余代码将是相同的。
编辑我使您的代码在这里工作:https : //jsfiddle.net/051nbtcL/2/
的HTML
<div class="print-me">First Paragraph</div>
<div class="print-me">Second Paragraph</div>
<div class="hide-print">Always Hidden</div>
<button id="print" class="hide-print">Print</button>
重要说明:
$('.print-me').on('click', function () {
$(this).toggleClass('hide-print');
});
hide-print
单击可打印元素时,将切换类。我正在使用CSS样式来轻松查看哪些元素具有此样式。
在button
的点击处理程序中,我首先找到具有print-me
该类的所有元素,然后删除那些也必须hide-print
找出是否有任何要打印的元素。
$('#print').on('click', function () {
var $areaToPrint = $('.print-me').filter(function(index){
return !$(this).hasClass('hide-print');
});
var $hiddenAreas = $('.hide-print');
在中if()
,我只需要隐藏隐藏的元素(其他元素是可见的并保持可见),然后打印并恢复:
if ($areaToPrint.length) {
$hiddenAreas.hide();
window.print();
$hiddenAreas.show();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句