如何通过遍历父级回到子级来使用jQuery选择某个元素?

时间:2011-11-11 21:24:08

标签: jquery select

我有以下代码。

<div class="container">
     <input type="hidden" name="id" value="123" class="id" />
     <div class="inner">
          <a href="#" class="link">link</a>
     </div>
</div>

所以我试图在点击锚标记时获取隐藏的id值。这是我尝试的以下代码,但没有用。

jQuery("a.link").click(function() {
     var id = jQuery(this).parents(".container").children("input.id").val();
     alert(id);
});

甚至不确定这是否是选择我想要的最佳方式......一些指导将不胜感激。

3 个答案:

答案 0 :(得分:1)

隐藏的输入标记是否有效,或者当有人点击您的链接时,是否仅用于检查?另一种方法是使用rel属性将所需的值输出到锚标记本身,并消除隐藏的输入。

将您的HTML输出:

<div class="container">
     <div class="inner">
          <a href="#" class="link" rel="123">link</a>
     </div>
</div>

然后你的jQuery是这样的:

jQuery("a.link").click(function() {
     var id = jQuery(this).attr('rel');
     alert(id);
});

如果<input>标记不起作用,这将简化您的HTML和jQuery。

答案 1 :(得分:0)

尝试

jQuery(".link").live('click',function() {
     var id = jQuery(this).parents(".container").find(".id").val();
     alert(id);
});

答案 2 :(得分:0)

试试这个:

$("a.link").click(function(){
    var value = $(this).parent().siblings(".id").val();
});

如果您想通过输入类型找到它,您可以这样做:

$("a.link").click(function() {
    alert($(this).parent().siblings("input[type='hidden']").val());
});