我有一个<img>
代码列表,每个代码都包含不同的ID。这是使用PHP for循环完成的,如下所示:
<?php
for($n=0; $n<=5; $n++)
{
?>
<img id="<?php echo 'time_'.$n; ?>" src="$output-mp4_thumbnails-$n.jpg">
<?php
}
?>
我想以这样的方式使用jQuery,当我点击浏览器上的特定图像时,它会相应地打印出id。以下是我编码的方式:
$(document).ready(function () {
$("img").click(function () {
alert($("img").attr("id"));
});
});
然而,这只保留了第一个id,即time_0
。我一直在寻找解决方法,我发现了change()
,但它只能用于表单输入。
任何建议都将不胜感激。
答案 0 :(得分:4)
您正在嵌套php标记<?php
和?>
,特别是在循环中。
尝试将图像标记回显为:
for($n=0; $n<=5; $n++)
{
echo "<img id='time_{$n}' src='{$output}-mp4_thumbnails-{$n}.jpg' />";
}
这应生成唯一的图片ID time_0
,time_1
,依此类推至time_5
。除此之外,您还需要在jQuery方面将@ Arun的答案或@ tchow002答案合并为:
$(document).ready(function () {
$("img").click(function () {
alert(this.id)
});
});
答案 1 :(得分:2)
试试这个alert($(this).attr("id"));
this
将选择点击的img
。您当前的代码与第一个img
匹配,但不会考虑所点击的内容。
答案 2 :(得分:1)
你的警报有问题,你alert($("img").attr("id"))
会始终提醒第一个img元素的id
,而你需要提醒被点击元素的id {{1} }
alert(this.id)
答案 3 :(得分:0)
for($n=0; $n<=5; $n++) {
echo sprintf("<img id='time_%d' src='%s-mp4_thumbnails-%d.jpg' />", $n, $output, $n);
}