Javascript onclick打印事件中的多个事件

Javascript onclick打印事件中的多个事件,javascript,onclick,Javascript,Onclick,我有一个onclick print事件,它工作正常,但现在我有一些div我想打印出来,所以我的问题是,我如何使这个脚本与所有id=“PrintElement”或id=“PrintElement1”/id=“PrintElement2”等一起工作,这样我就可以将id添加到我想打印在一张纸上的div中 我有一个Javascript,它与一个名为id=“PrintElement”的div一起工作 //将jQuery对象传递到新窗口的简单包装器 功能打印元素(elem){ 弹出($(elem.html

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

我有一个Javascript,它与一个名为id=“PrintElement”的div一起工作


//将jQuery对象传递到新窗口的简单包装器
功能打印元素(elem){
弹出($(elem.html());
}
//创建一个新窗口并用您的内容填充它
功能弹出窗口(数据){
//创建新窗口
var w=窗口打开(“”,'打印','高度=400,宽度=600');
w、 文件。书写(“打印”);
//包括样式表(可选)
w、 文件。写(“”);
w、 文件。写(“”);
w、 文件。写(“”);
//写下你的内容
w、 文件。写入(数据);
w、 文件。写(“”);
w、 打印();
w、 close();
返回true;
}
然后我有一个div

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

一些代码…短/长
并激活我的功能

<a onclick="PrintElement('#PrintElement')">Print</a>
打印
现在可以正常工作了,我只想让它与多个名为id=“PrintElement”的div一起工作,或者如果更简单的话,我可以调用divs id PrintElement和一个数字。。。所以它只是打印出带身份证的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>

一些代码…短/长
一些代码…短/长
一些代码…短/长
一些代码…短/长
一些代码…短/长
一些代码…短/长

希望您理解..

如果没有
jQuery
,请首先将枚举目标ID的代码移动到函数中,不要将其嵌入HTML:

<a onclick="PrintElements()">Print</a>
然而,有一种更好的方法。您可以在HTML中使用类(
)来标记打印目标,然后使用
document.getElementsByClassName
PrintElements
中提取它们

function PrintElements() {
    targets = document.getElementsByClassName('PritnElement')

    [].forEach.call(targets, function(x) {
        PrintElement(x)
    })
}

您应该将HTML中的
id=“PrintElement”
替换为
class=“PrintElement”

然后用
Print

然后:

function PrintElement(elem){
    $(elem).each(function() {
        Popup($(this).html());  
    });
}
这将为每个PrintElement打开一个新窗口

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

编辑:上面的代码正在使用jQuery。。。所以你需要图书馆

编辑2:如果您想收集数据并只打开一个弹出窗口

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

您使用的是什么库jQuery或Prototype?嗯,我不熟悉这个,但通常是jQuery.Thx。对于一个伟大的代码,但我使用文森特展示。。但是THX很多;-)谢谢。对于一个伟大的代码,不需要太多的编辑,它可以像我想要的那样工作,THX alot;-)
function PrintElement(elem){
    $(elem).each(function() {
        Popup($(this).html());  
    });
}
function PrintElement(elem){
    var data = '';
    $(elem).each(function() {
        data = data + $(this).html();
    });
    Popup(data);  
}