Javascript 使用jQuery获取元素的父级

Javascript 使用jQuery获取元素的父级,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我正在学习jQuery,所以这可能是某种误解 以javascript为例: var controls = $("#" + val.controltovalidate); var input = controls[0]; var parent = input.parent(); var pos = parent.position; 首先,我得到了具有特定ID的元素列表,因为它在ASP.NET中,我知道它只是一个元素,但我使用jQuery,它给了我一个列表。我还加了

我正在学习jQuery,所以这可能是某种误解

以javascript为例:

var controls = $("#" + val.controltovalidate);
var input = controls[0];
var parent = input.parent();                
var pos = parent.position;
首先,我得到了具有特定ID的元素列表,因为它在ASP.NET中,我知道它只是一个元素,但我使用jQuery,它给了我一个列表。我还加了“#”以使其生效。还有更好的办法吗

第二步,我得到实际元素(0处的数组)
HtmlInput
第三,我想找到它的容器,我正在做
input.parent()
。这个调用为我返回NULL。为什么?我知道对于这个
输入

使用

最近()有父
P


如果要查找直接父级,则应执行
$(“#”+val.controltovalidate).parent()
,如果要查找祖先层次结构中的第一个
元素,则应执行
$(“#”+val.controltovalidate).closest('p')

每个jQuery对象都是一个集合,所以不必担心这个事实,只需做您需要做的事情。它将只影响一个DOM元素


关于第二个问题:当您通过jQuery集合中的索引访问元素时,它将返回DOM元素。这就是为什么您会得到
HTMLInputElement

请尝试下面的最后两行:

 var pos = $(input).parent().position();

HtmlInputElement不支持closest()
-我发现错误您正在对HtmlInputElement而不是jQuery对象调用closest。尝试将其包装为jQuery对象$(输入)。最近的('p')。
 var pos = $(input).parent().position();