这只是一个关于jQuery的简单问题。我是个新手。当用户点击"span.fav“(星号)时,我如何获取"post_id”的值?我需要父级的值,而不是文档中的第一个值。我想最近会行吗?
这个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);
});
});发布于 2011-05-20 05:40:29
尝试:
    var hidden_value = $(this).closest('form').find('input:hidden[name="post_id"]').attr('value');
    alert(hidden_value);不同之处在于closest内部:传递字符串而不是jQuery选择器。
发布于 2011-05-20 05:40:51
只需找到父对象,然后从该父对象执行后续搜索:
$('span.fav').click(function(){
  var rel = $(this).parentsUntil('form').parent();
  var hidden_id = $(rel).find("input[name='post_id']").val();
});发布于 2011-05-20 05:43:38
您应该找到最接近的表单,并从表单中输入名为post_id的内容
var hidden_id = $(this).closest("form").find("input[name='post_id']").val();https://stackoverflow.com/questions/6065156
复制相似问题