如何使用链接获取值

时间:2012-01-22 22:13:19

标签: jquery jquery-selectors

我正在尝试将id绑定到标记。不确定我是否应该做一个绑定 但我希望我的例子有助于解释我想做什么。 我有一个php for循环,它给了我一系列数字

<?php

         for($value = 1; $value <=5; $value++){
         print '<br><form><input id="hidden" type="hidden" value="'.$value.'" /><a id="link">click here</a><form>';
         }
         ?>

在我的html中,当执行while循环时,我在表单中有一个字段html看起来像这样

<input id="hidden" type="hidden" value="1" /><a id="link">click here</a>
<input id="hidden" type="hidden" value="2" /><a id="link">click here</a>
<input id="hidden" type="hidden" value="3" /><a id="link">click here</a>

我的目标是这样的。如果我点击第一个'点击这里'我想输出隐藏值1 如果我点击第二个'点击这里'我想输出隐藏值2等...我的问题 是当我点击任一链接时,我只返回第一个“点击此处”的值,即1

这是我的jquery代码。

<script>
$(document).ready(function(){ 
    $("a#link").click(function(){
    var s = $('.hidden').val();
 alert(s); 
 }); 
}); 
</script>

感谢您的帮助...

3 个答案:

答案 0 :(得分:1)

$('.hidden').val()

将始终只为您提供DOM中的第一个隐藏的val。你需要

$(this).prev("#hidden").val()

看到这个小提琴:http://jsfiddle.net/RJJEr/

答案 1 :(得分:1)

永远不要使用相同的id将其更改为类

<input id="hidden" type="hidden" value="1" />
<a class="link" href="#">click here</a>
<input id="hidden" type="hidden" value="2" />
<a class="link">click here</a>
<input id="hidden" type="hidden" value="3" />
<a class="link">click here</a>

并且@DavidGouge已经回答了jquery部分

    $("a.link").click(function(e){
     e.preventDefault();
     var s = $(this).prev("input").val();
 alert(s);
 });

DEMO

答案 2 :(得分:0)

ID应该是唯一的,您可以使用class='hidden'代替id="hidden",并且在您的函数中使用了var s = $('.hidden').val(),但表单中没有'hidden'类。< / p>