我正在使用StackOverflow上的这个脚本来打印包含所有内容的div。
<script>
$(document).ready(function(){
$('#printmodal').click(function(){
// variables
var contents = $('#content').html();
var frame = $('#printframe')[0].contentWindow.document;
// show the modal div
$('#modal').css({'display':'block'});
// open the frame document and add the contents
frame.open();
frame.write(contents);
frame.close();
//Hide all 'noprint' elements
$(".noprint").css("display","none");
// print just the modal div
$('#printframe')[0].contentWindow.print();
// hide the modal div
$('#modal').css({'display':'none'});
});
});
</script>
然而,有些元素我不想打印,即;按钮等。对于这些元素,它们被赋予了'noprint'的类名。我有一个media =“print”css,但使用上面的功能不起作用。 noprint元素仍在打印。我尝试添加$(“。noprint”)。css(“display”,“none”);功能,但它仍然打印这些元素。有没有人知道在使用上述功能时我可以使某些元素不能打印?
答案 0 :(得分:3)
默认情况下,jQuery仅查询document
中包含它的window
,而不查询后代iframe
的文档。您可以通过将context
设置为选择器来解决此问题:
$(".noprint", frame).css("display","none");