我想打印div内容,同时保持css应用于div和内部html。
使用jQuery打印元素,但它剥离了css。
答案 0 :(得分:7)
怎么样
function printDiv(id) {
var html = "";
$('link').each(function() { // find all <link tags that have
if ($(this).attr('rel').indexOf('stylesheet') !=-1) { // rel="stylesheet"
html += '<link rel="stylesheet" href="'+$(this).attr("href")+'" />';
}
});
html += '<body onload="window.focus(); window.print()">+$("#"+id).html()+'</body>';
var w = window.open("","print");
if (w) { w.document.write(html); w.document.close() }
}
答案 1 :(得分:4)
https://github.com/jasonday/printThis
我为这个确切的场景创作的插件。
答案 2 :(得分:0)
使用.html()方法。它将获取所选元素内的所有HTML。
var myDivContents = $("div").html();
答案 3 :(得分:0)
您可以使用
访问div的所有内容var $contents = $( 'div' ).contents();
这包括所有标签和文本。
如果您只对可以使用的代码感兴趣
var htmlContents = $( 'div' ).html();
这将以字符串形式提供内容。
要打印出代码,只需将其插入另一个元素
即可$( 'div.new' ).append( $contents );
$( 'div.new' ).html( htmlContents );
如果没有应用某些样式,可能它们依赖于包裹元素及其类,这是很重要的事情。