jQuery - получение родительского элемента второго уровня - PullRequest
40 голосов
/ 20 апреля 2010

Я пытаюсь получить родительский элемент элемента (дедушка?). Я хочу найти этого дедушку, потом найти тег в этом элементе, а затем сохранить этот текст как переменную для публикации в другом месте на странице. Я пытался использовать функцию parent (), но безуспешно.

Вот код, который я пробовал:

    $('.mixPlayCell a').click( function() {
        var title = $(this).parent().get(0).parent().get(0).text();
        alert(title);
    });

Ответы [ 7 ]

56 голосов
/ 09 августа 2011

Для выбора второго родителя

parents(':eq(1)')

выглядит более гладким, чем

parent().parent()

Кроме того, вы можете обнаружить, что

closest('ul')

лучше подходит для работы.

40 голосов
/ 20 апреля 2010

попробуй:

$(this).parent().parent().find('.thingtofind').text();
5 голосов
/ 16 октября 2014

parent () возвращает список, поэтому это работает:

$(this).parents()[1];
3 голосов
/ 20 апреля 2010
$('.mixPlayCell a').click(function() {
  elem = $(this).parent().parent();
  title = $("tag selector goes here",elem).html();
});

Как то так?

1 голос
/ 20 апреля 2010

Есть только 1 родитель, нет необходимости .get (0)

    var title = $(this).parent().parent().find("whateveryouwant").html();
0 голосов
/ 07 января 2012

Попробуйте это для простой реализации:

$('.mixPlayCell a').click( function() {
    var title = $(this).parents().text();
    alert(title);
});

Только что изменили .parent () с одним .parents ()

это работает для всех версий jQuery.

0 голосов
/ 20 апреля 2010
$(this).parent().parent().find('mytag').text()

Должно работать нормально.

Вы можете использовать любой селектор в методе find. Если вам просто нужно искать в прямых потомках элемента дедушки, вы также можете использовать $.children вместо find, который ищет во всех дочерних элементах.

...