javascript - 打印页面上的特定元素?

标签 javascript jquery

我正在寻找打印页面的特定文本元素。目前,我在一页上有 10 张卡片,当用户选择打印特定卡片时,我只希望打印所选卡片。我正在使用 javascript:window.print(),但发现它打印了所有卡片。然而,我发现一段代码(如下)可以满足我的要求,但去掉了 Logo 。我尝试添加 document.getElementById('logo') 但它不起作用。也不知道如何将 Logo 添加为可打印区域。是否有一个 jQuery 方法可以在不使用插件的情况下处理这个问题?

HTML

<div class="container">
    <img id="logo" src="picture.jpg">
    <div class="card" id="card-a">Text <a href="" onclick="printDiv('card-a)">Print</a></div>
    <div class="card" id="card-b">Text <a href="" onclick="printDiv('card-b)">Print</a></div>
    <div class="card" id="card-c">Text <a href="" onclick="printDiv('card-c)">Print</a></div>
</div>

JS

function printDiv(divName) {
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}

最佳答案

只需在覆盖正文之前将其添加到 HTML 中即可:

function printDiv(divName) {
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    var logoContent = document.getElementById("logo").outerHTML;

    document.body.innerHTML = logoContent + printContents;
    window.print();
    document.body.innerHTML = originalContents;
}

关于javascript - 打印页面上的特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26519823/

相关文章:

jquery - Laravel Elixir 与 JQuery 和 JQuery UI

javascript - JQuery ASP 隐藏问题

javascript - 将本地存储变量名称设置为变量的值

jquery - Mysql表列不为空,但我需要在codeigniter中为空列

javascript - 为什么这个下拉菜单在 IE 中不起作用?

javascript - 如何更改 Angular 2中的currentUrl id?

javascript - 一旦所有延迟完成就调用一个方法?

javascript - Typescript with Angular2 - 针对 ES5 会产生错误?

javascript - 在 JSON.stringify 中使用变量

jquery - 使用 AJAX 监视 SQL 数据库的更改