Подтвердить что ты не робот

JQuery, найти родителя

<ul><li><div><div><span id="thisid"></span></div></div></li></ul>

$('#thisid').parent('li');

что явно не работает, но как я могу захватить элемент li? Я не хочу использовать:

$('#this').parent().parent().parent();

Я не хочу использовать его, потому что может случиться, что есть только один элемент div, а не два. В этом случае я бы взял элемент ul вместо элемента li.

4b9b3361

Ответ 1

$('#thisid').parents('li');
//                 ^ plural!

Обратите внимание: если вам нужен только первый элемент <li> в родословной, вы должны использовать closest():

$('#thisid').closest('li');

// `closest()` is equivalent to (but performs better than)
$('#thisid').parents('li').eq(0);
$('#thisid').parents('li').first();

Ответ 2

$('#thisid').parents('li')

или если вы хотите только первый:

$('#thisid').closest('li')

Ответ 3

$('#thisid').parents( 'li:eq(0)' ); 

Должен это сделать. Это даст вам первый (:eq(0)) родительский элемент, который соответствует тегу, который вы ищете.

Ответ 5

Я предпочитаю "ближайший", чем "родители".

Родители перемещаются по дереву DOM к корневому элементу документа, добавляя каждый элемент предка во временную коллекцию; он затем фильтрует эту коллекцию на основе селектора, если он поставляется.

где

Ближайшие Пройдите вверх по дереву DOM, пока не найдете совпадение для поставляемого селектора.

Самое главное, что они дают в результате:

Претензии: возвращенный объект jQuery содержит ноль или более элементов для каждого элемента исходного набора, в обратном порядке документа.

Ближайший: возвращенный объект jQuery содержит нуль или один элемент для каждого элемента в исходном наборе, в порядке документа

$('#thisid').closest('li');

Следуйте этой ссылке

Ответ 6

Простой, используйте parents()

var parents = $("#thisid").parents('li');

Ответ 7

На самом деле вы можете использовать $("#thisid").closest('li'). Это пересекает дерево DOM из выбранного node и возвращает первого соответствующего предка, тогда как .parents() перемещается из родительского node и возвращает все узлы-предки, соответствующие этому фильтру. Подробнее см. здесь.