我正在尝试获取链接点击事件的隐藏字段值。以下是这些元素的位置:
<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();
仍然未定义。
谢谢。
答案 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();