通过在jquery中循环获取值


Get the value through looping in jquery

for($i=0;$i<5;i++)
{
    <h2><a href="" class="question_title"><?php echo $value['asked_title'];?> </a></h2>
    <input type="hidden" name="question_id" value="<?php echo $i; ?>" id="question_id" class="question_id" >
}

Jquery :

$('.question_title').click(function () {
    var value = $('#question_id').val();
    alert(value);
});

此代码中的好友question_id将为循环携带不同的值。在这里,我有 writtern 代码来根据点击 ahref 类的循环获取值,我想获取隐藏值的值,例如在第一次迭代标题中是 cow 在点击 ahref 时它应该提醒 0(question_id值(。单击第二个标题猫时,它应该得到警报 1,就像单击 5 个不同的标题一样,它应该分别显示 0-4,但现在单击不同的标题时,它只提醒 0 而不是其他值。任何人都可以建议我如何实现它.

获取父h2,然后接下来.question_id如下所示。

$('.question_title').click(function() {
   var value = $(this).parent().next('.question_id').val();
   alert(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2><a href="" class="question_title">Title 0</a></h2>
<input type="hidden" name="question_id" value="0" id="question_id" class="question_id">
<h2><a href="" class="question_title">Title 1</a></h2>
<input type="hidden" name="question_id" value="1" id="question_id" class="question_id">

顺便说一句,您对多个元素使用相同的 id question_id

由于"id"是唯一值,因此它将仅获得第一个元素。

试试这个:

for($i=0;$i<5;i++)
{
<h2><a href="" class="question_title" id="<?php echo $i; ?>"><?php echo $value['asked_title'];?> </a></h2>
}

Jquery :

$('.question_title').click(function()
  {
  alert(event.target.id);
  });  

for

<?php 
for($i=0;$i<5;i++)
{
?>
<h2><a href="#" class="question_title" data-tell="<?php echo $i; ?>"><?php echo $value['asked_title'];?> </a></h2>
<input type="hidden" name="question_id" value="<?php echo $i; ?>" id="question_id" class="question_id" >
 <?php  } ?>

并在脚本使用

$('.question_title').click(function() {
   alert($(this).attr("data-tell"));
});

您在所有五个隐藏字段中具有相同的 id question_id

你可以这样拥有它..

for($i=0;$i<5;i++)
{
  echo '<h2><a href="" class="question_title" data-value="'.$i.'">'.$value['asked_title'].'</a></h2>';
}

jquery

$('.question_title').click(function()
{
  var value = $(this).data('value');
  alert(value);
});