问题描述
我有一个代码,其中使用foreach循环显示一组图像,单击该代码应在控制台中返回图像名称。
我尝试了以下代码:
<?PHP
foreach ($gallery as $i) {
?>
<img src="<?PHP echo "$i"; ?>" id="modal_img">
<?PHP }
?>
$(function(){
$("#modal_img").on("click",function(){
var src = $(this).attr("src");
console.log(src);
})
})
但是使用此代码,每次尝试时,只有第一个图像在控制台中产生结果,而其他图像在单击时在控制台日志中均没有响应。有人可以帮我解决这个问题吗?我已经附上了下面的屏幕图像,其中显示了图像的显示方式。
解决方法
ID
是unique
将ID
替换为Class
HTML
和JS
代码
<img src="<?php echo "$i"; ?>" class="modal_img">
$(function(){
$(".modal_img").on("click",function(){
var src = $(this).attr("src");
console.log(src);
})
})
,
因为您不能多次使用同一个ID,所以请使用类或标签选择器
像这样: 将其更改为课程
<img src="<?php echo "$i"; ?>" class="modal_img">
然后
$(".modal_img").on('click',function(event){
var src = $(this).attr("src");
console.log(src);
})
});