Javascript attr返回未定义的
我有一个包含元素.replyLink的HTML和一个类型为hidden的输入字段,该字段有一个值(在本例中为462)。我希望在单击.replyLink元素时能够获取input.hddnScrapId的value属性的值。这是HTML:Javascript attr返回未定义的,javascript,jquery,html,Javascript,Jquery,Html,我有一个包含元素.replyLink的HTML和一个类型为hidden的输入字段,该字段有一个值(在本例中为462)。我希望在单击.replyLink元素时能够获取input.hddnScrapId的value属性的值。这是HTML: <div class="scrapItemParent"> <input class="hddnScrapId" type="hidden" value="462"/> <img class="scrapProfile
<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>
这一直在说“未定义”。我猜问题是因为最近的()函数找不到输入字段hddnScrapId。为什么不起作用?1)只在元素本身及其祖先之间查找,而.hddnScrapId
元素不是单击元素的父元素
2) 要获取最新值,必须使用val
,而不是attr(“值”)
你想要这个:
var hddnScrapId = $(this).closest(".scrapItemParent").find(".hddnScrapId").val();
您的选择器不正确。您可以使用:
var hddnScrapId = $(this).closest('.scrapContent').siblings(".hddnScrapId").attr("value");
alert(hddnScrapId);
“为什么它不起作用?”你读过
.closest()
的文档了吗?你有多少个.hddnScrapId
,为什么你需要最近的呢?@mfunkyside-似乎你认为jQuery会计算出哪一个是最近的hddnScrapId
,而不是查看函数的功能。使用.val()
不是attr('value')
.scrapContent
是输入的同级.hddnScrapId
var hddnScrapId = $(this).closest('.scrapContent').siblings(".hddnScrapId").attr("value");
alert(hddnScrapId);