Как получить все родительские элементы, используя jquery? - PullRequest
9 голосов
/ 14 апреля 2009

Как получить все родительские элементы, используя jquery? я хочу сохранить этих родителей в переменной, чтобы потом использовать их в качестве селектора.
такие как <div><a><img id="myImg"/></a></div>
GetParents ( 'myImg'); вернет "div a" что-то подобное

Ответы [ 5 ]

8 голосов
/ 14 апреля 2009

/// Получить массив всех родительских элементов:

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

Обратите внимание, почему вы хотите это, но его можно повторно использовать в качестве селектора.

6 голосов
/ 14 апреля 2009

Вам не нужно захватывать их селекторы, так как впоследствии вы можете использовать их непосредственно с jQuery.

Если вы хотите использовать всех родителей позже, вы можете сделать что-то вроде:

var parents = $("#element").parents();
for(var i = 0; i < parents.length; i++){
  $(parents[i]).dosomething();
}
3 голосов
/ 14 апреля 2009

Каждый элемент имеет только одного реального родителя. Чтобы получить к нему доступ и сохранить его, напишите следующее:

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

Если вам нужны родители родителей, используйте .parents ()

См. Документацию для получения дополнительной информации:

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

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

1 голос
/ 08 июля 2011

Вы можете получить все теги родителей элемента следующим образом:

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

вы также можете заменить this.tagName на this.id , например, или другие атрибуты

1 голос
/ 14 апреля 2009

Вы можете использовать родителей (), чтобы получить вашего непосредственного родителя, и их родителей на дерево. Вы также можете передать селектор как аргумент, чтобы получить только родителей, которые соответствуют определенным критериям. Например:

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

чтобы получить всех родителей, у которых есть атрибут id, значение которого заканчивается текстом "container"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...