.parent( [selector ] )Возвращает: jQuery
Описание: Получить родителя каждого элемента в текущем наборе сопоставленных элементов, необязательно отфильтровав их с помощью селектора.
-
версия добавлена: 1.0.parent( [selector ] )
- selectorТип: СелекторСтрока, содержащая выражение селектора для сопоставления элементов.
-
Учитывая объект jQuery, представляющий набор элементов DOM, метод parent() перемещается к непосредственному родителю каждого из этих элементов в дереве DOM и создаёт новый объект jQuery из соответствующих элементов.
Этот метод похож на .parents(), за исключением того, что .parent() перемещается только на один уровень вверх по дереву DOM. Кроме того, $( "html" ).parent() метод возвращает набор, содержащий document, тогда как $( "html" ).parents() возвращает пустой набор.
Метод необязательно принимает выражение селектора того же типа, что и мы можем передать функции $(). Если селектор предоставлен, элементы будут отфильтрованы путём проверки, соответствуют ли они ему.
Рассмотрим страницу с простым вложенным списком:
<ul class="level-1">
<li class="item-i">I</li>
<li class="item-ii">II
<ul class="level-2">
<li class="item-a">A</li>
<li class="item-b">B
<ul class="level-3">
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
</ul>
</li>
<li class="item-iii">III</li>
</ul> Если мы начнём с элемента A, мы можем найти его родителей:
$( "li.item-a" ).parent().css( "background-color", "red" );
Результат этого вызова — красный фон для списка второго уровня. Поскольку мы не предоставляем выражение селектора, родительский элемент однозначно включается в объект. Если бы мы предоставили его, элемент проверялся бы на соответствие, прежде чем включаться.
Примеры:
Показывает родителя каждого элемента как (родитель > дочерний). Проверьте исходный код, чтобы увидеть исходный HTML.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>parent demo</title>
<style>
div, p {
margin: 10px;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<div>div,
<span>span, </span>
<b>b </b>
</div>
<p>p,
<span>span,
<em>em </em>
</span>
</p>
<div>div,
<strong>strong,
<span>span, </span>
<em>em,
<b>b, </b>
</em>
</strong>
<b>b </b>
</div>
<script>
$( "*", document.body ).each(function() {
var parentTag = $( this ).parent().get( 0 ).tagName;
$( this ).prepend( document.createTextNode( parentTag + " > " ) );
});
</script>
</body>
</html> Демо:
Найти родительский элемент каждого абзаца с классом "selected".
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>parent demo</title> <script src="https://code.jquery.com/jquery-3.7.0.js"></script> </head> <body> <div><p>Hello</p></div> <div class="selected"><p>Hello Again</p></div> <script> $( "p" ).parent( ".selected" ).css( "background", "yellow" ); </script> </body> </html>