我的HTML包含元素.replyLink和类型为hidden的输入字段,该字段具有值(在本例中为462)。我希望能够在单击.replyLink元素时获取输入.hddnScrapId的value属性的值。这是HTML:
<div class="scrapItemParent">
<input class="hddnScrapId" type="hidden" value="462"/>
<img class="scrapProfilePic" src=" static/img/user/personalProfilePicture/mod_50_50/150972db1a0c9e863746c12797398b6e40ae05c8.jpg" />
<div class="scrapContent"><br />
<video class="scrapVideo" controls>
<source src="../../../scrapll_m/static/vid/4045e7944d8ea8f10dd4826a1e1595a7cef73b0c.mp4" type="video/mp4">
</video><br />
<span class="scrapTime">2014-05-27 16:51:22<br />Erol Simsir
<a class="replyLink" href="javascript:void(0);">Reply</a>
<a class="replyClose" href="javascript:void(0);">x</a>
</span>
</div>
</div>
这是我现在的JS:
$('.replyLink').click(function(){
var hddnScrapId = $(this).closest(".hddnScrapId").attr("value");
alert(hddnScrapId);
});
这一直在说'未定义'。我猜问题是因为nearest()函数找不到输入字段hddnScrapId。为什么不起作用?
答案 0 :(得分:1)
1)closest只查看元素本身及其祖先,.hddnScrapId
元素不是单击元素的父元素。
2)要获取最新值,您必须使用val
,而不是attr("value")
。
你想要这个:
var hddnScrapId = $(this).closest(".scrapItemParent").find(".hddnScrapId").val();
答案 1 :(得分:0)
您的选择器不正确。您可以使用:
var hddnScrapId = $(this).closest('.scrapContent').siblings(".hddnScrapId").attr("value");
alert(hddnScrapId);