如何使用jquery获取所有元素父项?

时间:2009-04-14 18:37:53

标签: javascript jquery html dom

如何使用jquery获取所有元素父项?我想将这些父母保存在一个变量中,以便我以后可以用作选择器 例如<div><a><img id="myImg"/></a></div>
GetParents( 'myImg');将返回“div a”之类的东西

5 个答案:

答案 0 :(得分:8)

///获取所有元素父元素的数组:

allParents = $("#myElement").parents("*")

///通过元素的父项获取嵌套选择器:

function GetParents(id) {
    var parents = $("#" + id).parents("*");
    var selector = "";
    for (var i = parents.length-1; i >= 0; i--) {
        selector += parents[i].tagName + " ";
    }

    selector += "#" + id;

    return selector;
}

GetParents('myImage')将返回您的嵌套选择器:HTML BODY DIV A #myImage

请注意为什么你想要它,但它可以作为选择器重复使用。

答案 1 :(得分:6)

您不需要抓取他们的选择器,因为您可以在之后直接使用它们。

如果您想稍后使用所有父母,您可以执行以下操作:

var parents = $("#element").parents();
for(var i = 0; i < parents.length; i++){
  $(parents[i]).dosomething();
}

答案 2 :(得分:3)

每个元素只有一个真正的父元素。要访问和保存它,请写下以下内容:

myParent = $("#myElement").parent();

如果您也需要父母,请使用.parents()

有关详细信息,请参阅文档:

http://docs.jquery.com/Traversing/parent#expr

http://docs.jquery.com/Traversing/parents#expr

答案 3 :(得分:1)

您可以使用parent()将您的直接父母及其父母放在树上。您还可以将选择器作为arg传递给仅获取符合特定条件的父级。例如:

$('#myelement').parents('[id$=container]')

获取具有id属性的所有父级,其值以文本“container”

结尾

答案 4 :(得分:1)

您可以像这样获取元素父母的所有标记:

var sParents = $('#myImg').parents('*').map(function() {                
      return this.tagName;
    }).get().join(' ');

你也可以用 this.id 替换 this.tagName 或其他属性