在jquery中获取父元素的属性

时间:2011-05-19 21:37:18

标签: jquery jquery-selectors

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

3 个答案:

答案 0 :(得分:2)

尝试:

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

区别在于最接近:传递字符串而不是jQuery选择器。

答案 1 :(得分:1)

找到父母,然后从中进行后续搜索:

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

答案 2 :(得分:0)

你应该找到最接近的表格,并从表格

输入名为post_id的内容
var hidden_id = $(this).closest("form").find("input[name='post_id']").val();