jQuery предоставляет такие полезные методы, такие как parent()
, parents()
и parentsUntil()
, которые можно использовать для получения в DOM-дереве любого предка в иерархии.
jQuery-метод parent()
jQuery-метод parent()
используется для получения прямого родительского элемента.
В следующем примере будет выделен прямой родительский элемента <li>
— элемент <ul>
, путем добавления класса .highlight
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery parent() Demo</title>
<style>
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
$("li").parent().addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery-метод parents()
jQuery-метод parents()
используется для получения предков выбранного элемента.
В следующем примере будет добавлена граница вокруг всех элементов-предков <li>
, которыми являются элементы <ul>
, <div>
, <body>
и <html>
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery parents() Demo</title>
<style>
*{
margin: 10px;
}
.frame{
border: 2px solid green;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
$("li").parents().addClass("frame");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
При желании вы можете включить один или несколько селекторов в качестве параметра в методе parents()
, чтобы отфильтровать результаты поиска предков. В следующем примере будет применена граница вокруг всех предков <li>
, которыми являются элементы <div>
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery parents() Demo</title>
<style>
*{
margin: 10px;
}
.frame{
border: 2px solid green;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
$("li").parents("div").addClass("frame");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery-метод parentsUntil()
jQuery-метод parentsUntil()
используется, чтобы получить все предки до, но не включая элемент, соответствующий селектору. Проще говоря, мы можем сказать, что он возвращает все элементы-предки между двумя заданными элементами в иерархии DOM.
В следующем примере будет добавлена граница вокруг всех элементов-предков <li>
, за исключением элемента <html>
, т. е. добавлена граница для элементов <ul>
, <div>
и <body>
.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery parentsUntil() Demo</title>
<style>
*{
margin: 10px;
}
.frame{
border: 2px solid green;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
$("li").parentsUntil("html").addClass("frame");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>