我正在尝试将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>
感谢您的帮助...
答案 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);
});
答案 2 :(得分:0)
ID应该是唯一的,您可以使用class='hidden'
代替id="hidden"
,并且在您的函数中使用了var s = $('.hidden').val()
,但表单中没有'hidden'
类。< / p>