【发布时间】:2015-01-03 14:35:03
【问题描述】:
我正在 ExpressionEngine 中构建一个页面,每次用户添加新图像时,img 元素的 ID 都会增加 1(为每个图像提供唯一的 ID)。因此,例如,如果管理员上传 3 个图像 id,每个图像 id 分别是 mainImg0、mainImg1、mainImg2。用户可以根据需要添加任意数量的图片。
我正在使用以下 javascript/jquery 来允许前端用户使用输入按钮打印图像,但现在代码只打印第一张图像。 js 中获取每个唯一 ID 的最佳方法是什么,以便当用户单击打印时,相应的图像会在新选项卡中打开并打印?
这是我当前的 js:
$(document).ready(function(){
$('#printImg').click(function(){
pwin = window.open(document.getElementById("mainImg0").src,"_blank");
pwin.onload = function () {window.print();}
});
});
这是html的输出:
<div class="machine_parts_left">
<div class="machine_parts_left_img">
<a class="fancybox-effects-c" href="{image}" title="{image_title}"><img id="mainImg0" src="{image}" alt="{image_title} Diagram" /></a>
<p>Click To Zoom Image</p>
<input type="button" value="Print Image" id="printImg" />
</div>
</div>
<div class="machine_parts_left">
<div class="machine_parts_left_img">
<a class="fancybox-effects-c" href="{image}" title="{image_title}"><img id="mainImg1" src="{image}" alt="{image_title} Diagram" /></a>
<p>Click To Zoom Image</p>
<input type="button" value="Print Image" id="printImg" />
</div>
</div>
<div class="machine_parts_left">
<div class="machine_parts_left_img">
<a class="fancybox-effects-c" href="{image}" title="{image_title}"><img id="mainImg2" src="{image}" alt="{image_title} Diagram" /></a>
<p>Click To Zoom Image</p>
<input type="button" value="Print Image" id="printImg" />
</div>
</div>
【问题讨论】:
-
如果他们共享一个类,或者一起在一个容器中,您可以使用该类/父容器作为选择器,并循环遍历
img标签,并将 ID 完全排除在外。我理解正确吗?
标签: javascript image printing expressionengine