Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript attr返回未定义的_Javascript_Jquery_Html - Fatal编程技术网

Javascript attr返回未定义的

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

我有一个包含元素.replyLink的HTML和一个类型为hidden的输入字段,该字段有一个值(在本例中为462)。我希望在单击.replyLink元素时能够获取input.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>
这一直在说“未定义”。我猜问题是因为最近的()函数找不到输入字段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);