单击时Jquery更改图像

时间:2012-12-28 21:08:59

标签: php javascript jquery

我的点击更改图片有问题,我有数据库消息,每条消息都有状态0或1,从我的代码o必须点击状态图像它会改变,它的改变但仅针对第一条消息。当我点击其他消息状态时,它不会更改,但仅更改第一个状态。我怎么能跑这个!!!“

<script type="text/javascript">
 $(function() {
$('.imageCheck').click(function(e){
 e.preventDefault();
$("#bg").attr('src',"/application/admin/img/tick.png");  
});    
});

    </script>    

                                     

                                            <th>Status</th>

                </tr>
            </thead>
            <tbody>
                <?php 
                foreach ($users as $user):

                ?>
                <tr>
                    <td><?=$user['id']?></td>
                    <td>                                                      
  <div class="imageCheck"><img id="bg" src="<?php echo $img_path;?>publish_x.png" name="statusCheck" value="0" />
                                                   </div>                                                     
                                            </td> 

3 个答案:

答案 0 :(得分:1)

您需要更改消息控件中的#bg。在事件处理程序中使用find来获取嵌套的bg元素。

$('.imageCheck').click(function(e){
   e.preventDefault();
   $(this).find("#bg").attr('src',"/application/admin/img/tick.png");  
});  

答案 1 :(得分:0)

因为ID可以(或者更确切地说)只在DOM中存在一次。 jQuery只更改匹配选择器#bg的第一个元素。请尝试使用类:

<img class="bg" />

$('.bg').attr('src', '...');

答案 2 :(得分:0)

ID应该在页面上是唯一的。由于你是循环的,你将有多个id为bg的imgs,所以只有第一个有效。

当BenM状态将其更改为.bg时,还会更新您的代码以找到div下面的确切图像

$(".bg", $(this)).attr('src',"/application/admin/img/tick.png");