用jQuery获取元素的父元素

时间:2013-03-23 03:31:37

标签: 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,它给了我列表。我还在前面添加“#”以使其正常工作。有更好的方法吗?

其次我得到实际元素(数组为0)HtmlInput 第三,我想找到它的容器而我正在做input.parent()。这个调用为我返回NULL。为什么?我知道这个P

有父input

3 个答案:

答案 0 :(得分:1)

使用closest();

var parent = $(input).closest('p');

答案 1 :(得分:1)

如果要在祖先层次结构中找到第一个$("#" + val.controltovalidate).parent()元素,如果要查找直接父级和$("#" + val.controltovalidate).closest('p'),则应该执行<p>

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

对于第二个问题:当您通过jQuery集合中的索引访问元素时,它将返回DOM元素。这就是你获得HTMLInputElement的原因。

答案 2 :(得分:0)

尝试最后两行:

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