2012-01-22 30 views
0

IDをタグにバインドしようとしています。私がバインドをしなければならないかどうか確信しないでください。 私の例が私が何をしようとしているのかを説明するのに役立ちます。 私は私がwhileループをHTMLに実行されるフォーム内のフィールドを持っているリンクを使用して値を取得する方法

私のhtmlで
<?php 

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

一連の番号を与えるこの

<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> 

私の目的のように見えるループのためのPHPを持っていますこれは。最初の 'ここをクリック'をクリックすると、1の隠し値を出力したい場合 2番目の 'ここをクリック'をクリックすると2の隠れ値などを出力したいのですが、私の問題 はどちらのリンクでも、最初の「ここをクリック」の値が返されます。1

これは私のjqueryコードです。事前にあなたの助けのための

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

おかげで...

+1

'hidden 'と' link'に同じidを3回使用することはできません。代わりにclassを使用してください。 – Sotiris

答えて

1
$('.hidden').val() 

は常にちょうどあなたのDOMの最初の隠されたのvalを与えるだろう。あなたは必要

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

このフィドルを参照してください:http://jsfiddle.net/RJJEr/

+0

ありがとう – user570782

1

は今までそれは

<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> 

クラスに同じ idの変更を使用することはありませんし、jqueryの一部はすでに@DavidGouge

によって回答されています
$("a.link").click(function(e){ 
    e.preventDefault(); 
    var s = $(this).prev("input").val(); 
alert(s); 
}); 

DEMO

0

IDは一意である必要があります。id="hidden"の代わりにclass='hidden'を使用し、var s = $('.hidden').val()を使用しましたが、フォームに'hidden'クラスはありません。

関連する問題