2017-07-04 337 views
3

我有一个远程循环,它检查数字并将结果输出到数字。给for循环中的每个元素赋予不同的ID

例如,在下图中,“剪切图像”以倍数显示。我在远端循环中有标签,因此它根据次数输出图像。这个数字来自数据库。

MY Question。 很明显,第一行的所有图像都会有相同的ID。目前用户只能点击该行的第一张图片。如果可能的话,我想给每个元素不同的ID。比我想用JQuery添加点击事件。所以如果我点击第一行的第四张图片,它会提示消息,如果我点击第五张图片,它会显示不同的提醒消息。

如何在远程循环中为每个元素分配不同的ID,因此它只会使第一个图像可点击,而不是所有元素都可点击。

enter image description here

我的循环

<table class="table table-bordered"> 
    <thead> 
    <tbody> 
     <tr> 
     <?php 
     for($x=0; $x < $row['noof10s_vnr']; $x++){ 
      ?> 

      <td><img alt="" class="yellow-process center-block " id ="cut-full-roll-<?php echo $row['id_vnr']; ?>" name="<?php echo $row['id_vnr']; ?>" src="../../css/icons/vinyl-rolls/cut.png"></td> 
     <?php 
     } 
     ?> 

     </tr> 
    </tbody> 
    </table> 

我jQuery选择 如果我可以给每一个元素不同的ID,比我可以做这样的事情,以增加点击的事件,点击图像。

jQuery("#vinyl-roll-down-<?php echo $row['id_vnr']; ?>").click(function() { 

但我需要帮助分配不同的独特的每个元素在遥远的循环。

在此先感谢。

+0

戴上类单击处理程序,然后进入'$(这)'来获得细节点击图片 –

+0

看起来你的循环是不正确的。对于一些示例数据会很有帮助。就像'noof10s_vnr'是什么,以及该行是什么。你的循环只是一遍又一遍地输出同一行。你已经有了一个id,那就是$ x。你每次增加它,所以只是使用它? – Alx101

+0

那会很好。但目前,每行的第一张图片是可点击的。单行中的所有图像都具有相同的ID,因此只有第一个可点击。我想给连续的每个元素赋予不同的唯一ID,比我可以添加一个点击事件 –

回答

3

我认为你的PHP循环是可以的。 问题在于你的jQuery,尝试使用使用属性 选择器attr("id")来获得正确的ID。

jQuery(".yellow-process").click(function() { 
    var selected = jQuery(this).attr("id"); 
    alert(selected); // to show the selected image id 
    // use the variable selected to do something with it. 
} 

尝试此jQuery代码后,您可以提前使用它。

0

你可以试试这个

在HTML:

<table class="table table-bordered"> 
    <thead> 
    <tbody> 
    <tr> 
     <?php 
     for($x=0; $x < $row['noof10s_vnr']; $x++){ 
     ?> 
     <td><img id="image{{$x}}" alt="" class="yellow-process center-block " onclick="imageClick(<?php echo $row['id_vnr']; ?>)" name="<?php echo $row['id_vnr']; ?>" src="../../css/icons/vinyl-rolls/cut.png"></td> 
     <?php 
     } 
     ?> 

    </tr> 
    </tbody> 
</table> 

jQuery中

function imageClick(id) { 
    alert(id); 
    var imageId = jQuery(this).attr("id"); 
    alert(imageId); 
// your code 
} 

我大腿它会帮助你的。

+0

谢谢Binhudatta Sahoo。我喜欢这种方法。有没有什么办法来区分每个元素。目前,如果我点击第一行中的任何图像,它将显示相同的ID。我想现在以不同的方式处理每个图像。 –

+0

是的@Muhammad Ikram你可以做到这一点,只需尝试一次编辑的答案。 –

-2
$(".yellow-process").bind("click",function() { 
    var selected = $(this).attr("id"); 
    alert(selected); // to show the selected image id 
    // use the variable selected to do something with it. 
}); 

写在正确的方式你的PHP代码,并如预期只是上面jQuery的工作是工作代码

相关问题