jquery从循环不起作用中获取值

时间:2016-05-04 16:34:28

标签: jquery click

当我想从循环中获取jquery值时,我遇到了问题。这是我的代码

<?php 
  for($x=0; $x < count($results); $x++){
?>
    <span id="delete">Delete</span>
    <input type="hidden" id="comm" name="comm" value="<?=$results[$x]['id'];?>">
<?php
  }
?>

这是我的jquery代码

$("#delete").click(function() { 
   var comm = $("#comm").val();
   alert(comm);
});

有了这个条件,当我点击“删除”时,我第一次得到价值但是当我再次点击时我没有得到任何价值

2 个答案:

答案 0 :(得分:0)

首先,更改您的代码,以便不重复ID:

<?php 
  for($x=0; $x < count($results); $x++){
?>
    <span class="delete">Delete</span>
    <input type="hidden" class="comms" id="comm<?php echo $x; ?>" name="comm<?php echo $x?>" value="<?=$results[$x]['id'];?>">
<?php
  }
?>

现在,在您的javascript代码中:

$(".delete").click(function() { 
   var comm = $(this).find("+ input").val();
   alert(comm);
});

答案 1 :(得分:0)

问题是您正在选择标识为delete的第一个元素。 ID必须在您的网页上是唯一的。

我发现你只是使用隐藏输入来获取它的值。如果您仅将其用于此目的,则可以省略它,只需将数据作为data-*属性添加到删除按钮。

<强> PHP:

<?php for($x=0; $x < count($results); $x++){ ?>
    <span class="delete" data-id="<?=$results[$x]['id'];?>">Delete</span>
<?php } ?>

<强> jQuery的:

$(".delete").click(function() { 
   var comm = $(this).data('id');
   alert(comm);
});

优点是,如果您的身份证号码是号码,它也将为您提供。