微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Onclick函数仅在每个循环的第一次迭代中起作用

如何解决为什么Onclick函数仅在每个循环的第一次迭代中起作用

我有一个代码,其中使用foreach循环显示一组图像,单击该代码应在控制台中返回图像名称

我尝试了以下代码

    <?PHP

    foreach ($gallery as $i) {

    ?>
    <img src="<?PHP echo "$i"; ?>" id="modal_img">

   <?PHP }
    ?>

上面的代码是通过foreach循环迭代显示图像的代码

    $(function(){
       $("#modal_img").on("click",function(){
       var src = $(this).attr("src");
        console.log(src);
       })
     })

但是使用此代码,每次尝试时,只有第一个图像在控制台中产生结果,而其他图像在单击时在控制台日志中均没有响应。有人可以帮我解决这个问题吗?我已经附上了下面的屏幕图像,其中显示了图像的显示方式。

enter image description here

解决方法

IDunique

ID替换为Class HTMLJS代码

<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);
   })
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。