jQuery在点击时获得下一个兄弟隐藏值

时间:2011-09-30 09:07:06

标签: jquery

我正在尝试获取链接点击事件的隐藏字段值。以下是这些元素的位置:

<p>
    <a class="showCommentAttachment cboxElement" href="#">Attachments</a>
    <input type="hidden" value="13" id="ctl00_ContentPlaceHolder1_lvComment_ctrl3_hfCommentId" name="ctl00$ContentPlaceHolder1$lvComment$ctrl3$hfCommentId">
</p>

这里有完整的标记:

<div id="divComment" class="comment-text">
    <div class="comment-author">
         David Chart
    </div>
    <span class="comment-date-time">Sep 29, 2011 08:12:42 PM</span>
    <p>
         Some comment text goes here. Some comment text goes here.

    </p>
    <p>
        <a class="showCommentAttachment cboxElement" href="#">Attachments</a>
        <input type="hidden" value="13" id="ctl00_ContentPlaceHolder1_lvComment_ctrl3_hfCommentId" name="ctl00$ContentPlaceHolder1$lvComment$ctrl3$hfCommentId">
    </p>
</div>

这是jQuery:

$("#divComment a.showCommentAttachment").click(function() {

    var nextSibling = $(this).next().find('input:hidden').val();

    $("#showCommentId").html(nextSibling + "<-- Here's the comment ID ");

 });

我从nextSibling得到的是未定义的。我试着像这样使用nexAll

  

var nextSibling = $(this).nextAll()。find('input:hidden')。val();

仍然未定义。

谢谢。

3 个答案:

答案 0 :(得分:5)

您应该只使用$(this).next(),因为下一个元素肯定是隐藏的输入字段。同样使用$(this).next().find(),您正在查询隐藏输入元素的子元素。这来自jQuery API documentation

  

<强> .find()

     

获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。

所以你需要$(this).next().val()

答案 1 :(得分:3)

.next()为您提供下一个兄弟,它是输入字段本身。然后调用.find()搜索该字段的后代(没有任何内容)。

您只想要$(this).next().val()

答案 2 :(得分:0)

请尝试:

$(this).next().val();

$("#divComment a.showCommentAttachment").next().val();