javascript - 打印 <c :foreach> individually using javascript 的每个循环

标签 javascript jquery

目前我正在使用以下代码打印带有打印图标的整个页面:

<a href="javascript:window.print()">
<img src="images/printIcon.gif" alt="Print the Records" width="40" height="40" border="0" /> 
</a>

我正在读取 JSP 中的对象列表并使用 <c:foreach> 显示对象详细信息。 我想在每个对象的详细信息旁边显示一个打印图标,并在单击它时仅打印(到外部打印机)单个对象的详细信息。整个页面位于单个 div 中。

我不确定这是否可以做到。我可以使用某种 ID 来控制每个循环吗?

编辑:

示例:

  <c:forEach var="case" items="${distributions}">
     <table>
        <tr> 
            Print case details
        </tr>
     </table>
  </c:foreach>

如果我有 10 个发行版,我会得到 10 个表格,因此希望每个表格旁边有一个打印图标,单击它时,仅打印该单个表格。

最佳答案

我还没有执行以下操作,但理论上它应该有效:

1) 定义打印样式表,其中:

body.detail-print .detail-item{display:none}
body.detail-print .detail-item.current{display:block}

2) 定义一个事件监听器,例如使用 jQuery

$(".detail-item .print").click(function(e) {
    $("body").addClass("detail-print");
    $(this).closest(".detail-print").addClass("current");
    window.print();
});

这应该只打印打印样式表中可见的内容。

我在这里看到的唯一问题:如果有人想随后打印整个页面,浏览器将只打印最后选定的项目。您可以使用 setTimeout 来重置类。我现在没有更好的想法......

关于javascript - 打印 <c :foreach> individually using javascript 的每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15282676/

相关文章:

javascript - 在下拉列表中显示带有复选框的选项 - HTML/JAVASCRIPT

javascript - 如何在文本框中显示变量中的值?

javascript - 如何在 html Vue 列表模板上插入索引?

jquery - 你能在悬停时制作渐变动画吗?

jquery - 如何使用 $.ajax() GET 响应指定内容类型和内容处置

javascript - 使用 Raphael 创建水平线性渐变

javascript - 将用户输入的日期转换为 JSON mm/dd/yyyy 格式并将其显示为结果

javascript - 单击父 div 时,获取子值 - 无需字符串操作

javascript - 提高 javascript 函数的可读性和质量

javascript - html 和 javascript 中的国家/地区/城市下拉菜单