JQuery, найти родителя
<ul><li><div><div><span id="thisid"></span></div></div></li></ul>
$('#thisid').parent('li');
что явно не работает, но как я могу захватить элемент li? Я не хочу использовать:
$('#this').parent().parent().parent();
Я не хочу использовать его, потому что может случиться, что есть только один элемент div, а не два. В этом случае я бы взял элемент ul вместо элемента li.
Ответы
Ответ 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)
) родительский элемент, который соответствует тегу, который вы ищете.
Ответ 4
$('li').has('#thisid')
http://api.jquery.com/has/
Ответ 5
Я предпочитаю "ближайший", чем "родители".
Родители перемещаются по дереву DOM к корневому элементу документа, добавляя каждый элемент предка во временную коллекцию; он затем фильтрует эту коллекцию на основе селектора, если он поставляется.
где
Ближайшие Пройдите вверх по дереву DOM, пока не найдете совпадение для поставляемого селектора.
Самое главное, что они дают в результате:
Претензии: возвращенный объект jQuery содержит ноль или более элементов для каждого элемента исходного набора, в обратном порядке документа.
Ближайший: возвращенный объект jQuery содержит нуль или один элемент для каждого элемента в исходном наборе, в порядке документа
$('#thisid').closest('li');
Следуйте этой ссылке
Ответ 6
Простой, используйте parents()
var parents = $("#thisid").parents('li');
Ответ 7
На самом деле вы можете использовать $("#thisid").closest('li')
. Это пересекает дерево DOM из выбранного node и возвращает первого соответствующего предка, тогда как .parents()
перемещается из родительского node и возвращает все узлы-предки, соответствующие этому фильтру. Подробнее см. здесь.