Получение родительского элемента для селектора jquery - PullRequest
0 голосов
/ 14 октября 2011

У меня есть таблица, в которой каждая строка имеет идентификатор CSS, подобный следующему:

<table>
<tr id='1'>...</tr>
<tr id='2'>...</tr>
<tr id='3'>...</tr>
</table>

В строке пользователь может щелкнуть определенный элемент в ячейке.Я хочу найти строку, по которой щелкнули.

Так, например:

<tr id='x'><td></td>...<td><div class='someclass'><div class='anotherclass'></div></div></td>...</tr>

В этом случае я хочу ответить, когда пользователь нажимает на элемент class = 'anotherclass'.Я хочу получить идентификатор строки, содержащей этот выбранный элемент, но я не хочу использовать $ (this) .parent (). Parent (). Parent () .... и т. Д., Поскольку существует несколько уровней происхождения.и это становится уродливым.

Есть ли способ получить строку, содержащую этот элемент, используя .parent () несколько раз?

ОБНОВЛЕНИЕ: Спасибо всем.Это прекрасно.

Ответы [ 3 ]

6 голосов
/ 14 октября 2011

Использование closest():

$('.anotherclass').click(function () {
     alert($(this).closest('tr').prop('id'));
});
1 голос
/ 14 октября 2011

Вы можете использовать это.

$('.anotherclass').click(function () {
     alert($(this).parents('tr').attr("id"));
});
1 голос
/ 14 октября 2011

Использование closest:

$(".anotherclass").click(function() {
    console.log($(this).closest("tr").attr("id"));
});

Из документов:

Получить первый элемент, соответствующий селектору, начиная с текущего элементаи прогрессировать через дерево DOM.

...