2012-01-02 30 views
1

隠し入力型の値を取得しようとしていますが、機能しません。 (スクリプトタグ内)Jquery入力の隠し値を取得できません

のjQuery:

$('.flagComment').click(function() { 
    var commentid = $(this).siblings('.commentId').attr('value'); 

    alert(commentid); 
}); 

HTML(これは、whileループで数回エコー表示):

<div class='bar'> 
    <a href='#' class='flagComment'>Flag</a> 
</div> 

<input type='hidden' class='commentId' value='testvalue' /> 

答えて

3

試してみてください。

var commentid = $(this).parent().next('.commentId').val(); 

隠し入力はdiv要素の兄弟ではなく、アンカーからです。

+0

それは働いた!ありがとう。私はあなたの答えを受け入れてくれます。 – kirby

0

.commentId.flagCommentの兄弟ではないので、これは、より良い動作するはず:

$('.flagComment').click(function(){ 
    var commentid = $(this).parent().next('.commentId').val(); 
    alert(commentid); 
}); 

Demo

+1

'Closest'は、DOMを移動するので、次の' .commentId'を見つけられないでしょう。 – john

+1

@john、お元気ですか? – Joe

+0

'closest'を' parent'に変更しました。今すぐ使える。あなたが '最近で'それを持っていたとき、それはうまくいきませんでした。だからこそ、あなたはあなたの答えを「親」に変えたと思います。 – john

0

入力はこのリンクの兄弟ではありません。今では動作します:

<div class='bar'> 
<a href='#' class='flagComment'>Flag</a> 
<input type='hidden' class='commentId' value='testvalue' /> 
</div> 

あなたは(最も近いとも試すことができます)機能:

$('.flagComment').click(function() { 
    var commentid = $(this).closest('.commentId').attr('value'); 
    alert(commentid); 
}); 
関連する問題