使用jQuery从PHP循环中选择元素的id

时间:2014-03-16 04:25:43

标签: php jquery

我有一个<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(),但它只能用于表单输入。

任何建议都将不胜感激。

4 个答案:

答案 0 :(得分:4)

您正在嵌套php标记<?php?>,特别是在循环中。

尝试将图像标记回显为:

for($n=0; $n<=5; $n++)
{               
    echo "<img id='time_{$n}' src='{$output}-mp4_thumbnails-{$n}.jpg' />";
}

这应生成唯一的图片ID time_0time_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);
}