2012-01-02 32 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 2012-01-02 15:33:48

0

這應該更好地工作,因爲.commentId不是.flagComment同級:

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

Demo

+1

'Closest'向上行進的DOM,所以它不會找到下一個'.commentId'。 – john 2012-01-02 15:34:27

+1

@john,你在說什麼? – Joe 2012-01-02 15:36:53

+0

您剛剛將「最接近」改爲「父」。現在它會起作用。當你靠近「最接近」時,它不起作用。這就是爲什麼,我想你把你的答案改成了「父母」。 – john 2012-01-02 15:39:11

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); 
});