我有一个onclick打印事件,它可以正常工作,但是现在我想打印一些div,所以我的问题是,如何使此脚本与所有id =“ PrintElement”或id =“ PrintElement1” / id =一起使用“ PrintElement2”等等,所以我可以将ID添加到要在一张纸上打印的div上。

我有这个Javascript,可以与名为id =“ PrintElement”的One div一起使用。

  <script type="text/javascript">
    //Simple wrapper to pass a jQuery object to your new window
    function PrintElement(elem){
        Popup($(elem).html());
    }

    //Creates a new window and populates it with your content
    function Popup(data) {
        //Create your new window
        var w = window.open('', 'Print', 'height=400,width=600');
        w.document.write('<html><head><title>Print</title>');
        //Include your stylesheet (optional)
        w.document.write('<link rel="stylesheet" href="add/css/layout.css" type="text/css" />');
        w.document.write('<link rel="stylesheet" href="add/css/main.css" type="text/css" />');
        w.document.write('</head><body>');
        //Write your content
        w.document.write(data);
        w.document.write('</body></html>');
        w.print();
        w.close();

        return true;
    }
  </script>


然后我有一个div

<div id="PrintElement">
 SOME CODE.....SHORT/LONG
</div>


并激活我拥有的功能

<a onclick="PrintElement('#PrintElement')">Print</a>


现在工作正常,我只希望它与一个以上的div一起使用,它们称为id =“ PrintElement”,或者如果更简单的话,我可以将div的ID称为PrintElement和一个数字...因此它只是打印出带有ID的div

<div id="PrintElement">
 SOME CODE.....SHORT/LONG
</div>
<div>
 SOME CODE.....SHORT/LONG
</div>
<div id="PrintElement">
 SOME CODE.....SHORT/LONG
</div>
<div>
 SOME CODE.....SHORT/LONG
     <div id="PrintElement">
       SOME CODE.....SHORT/LONG
     </div>
     <div>
      SOME CODE.....SHORT/LONG
     </div>
</div>


希望你明白..

最佳答案

您应该在HTML中将id="PrintElement"替换为class="PrintElement"

然后用<a onclick="PrintElement('#PrintElement')">Print</a>更改<a onclick="PrintElement('.PrintElement')">Print</a>

接着:

function PrintElement(elem){
    $(elem).each(function() {
        Popup($(this).html());
    });
}


但是,这将为每个PrintElement打开一个新窗口。

您可以使用var收集数据,然后在循环结束时调用Popup。

编辑:上面的代码正在使用jQuery ...所以您将需要该库。

EDIT2:如果您想收集数据并仅打开一个弹出窗口

function PrintElement(elem){
    var data = '';
    $(elem).each(function() {
        data = data + $(this).html();
    });
    Popup(data);
}

10-06 15:18