2011-05-19 123 views
2

只是一个关于jQuery的简单问题。我是新手。当用户点击“span.fav”(星号)时,如何获得“post_id”的值?我想要父母的价值,而不是文件中的第一个价值。我认为最接近的工作?在jquery中获取父类的属性

的HTML

<form action="index.php" method="post" accept-charset="utf-8"> 
    <div class="hidden"> 
     <input type="hidden" name="post_id" value="1000000019" /> 
     <input type="hidden" name="xxxxxxx" value="xxxxxxxxxx" /> 
    </div> 
    <p> 
     <span name="fav" class="fav">★</span>Post message here...<span class="author">by Thomas Quantas</span> 
    </p> 
</form> 
<form action="index.php" method="post" accept-charset="utf-8"> 
    <div class="hidden"> 
     <input type="hidden" name="post_id" value="1000000020" /> 
     <input type="hidden" name="xxxxxxx" value="xxxxxxxxxx" /> 
    </div> 
    <p> 
     <span name="fav" class="fav">★</span>Post message here...<span class="author">by Thomas Quantas</span> 
    </p> 
</form> 

jQuery的我到目前为止。

$(document).ready(function(){ 
$("span.fav").bind('click', function() { 
    //var test = $(this).parent(); 
    //var test = $(this).closest(); 
    var hidden_id = $(this).closest($("input[type='hidden']").attr('value')); 
    var hidden_id = $("input[type='hidden']").attr('value'); 
    alert(hidden_id); 
}); 
}); 

回答

2

尝试:

var hidden_value = $(this).closest('form').find('input:hidden[name="post_id"]').attr('value'); 
    alert(hidden_value); 

的区别是最接近内部:传递一个字符串,而不是jQuery选择。

1

只要找到父母,然后做后续搜索从:

$('span.fav').click(function(){ 
    var rel = $(this).parentsUntil('form').parent(); 
    var hidden_id = $(rel).find("input[name='post_id']").val(); 
}); 
0

,你应该从形式找到最接近的形式和输入命名POST_ID

var hidden_id = $(this).closest("form").find("input[name='post_id']").val();