jQuery 横向遍历
在本教程中,你将学习如何使用 jQuery 在 DOM 树中横向遍历。
在 DOM 树中横向遍历
在逻辑关系中,兄弟姐妹是共享同一父母的那些元素。
jQuery 提供了几种方法,如 siblings()
、next()
、nextAll()
、nextUntil()
、prev()
、prevAll()
和 prevUntil()
,你可以使用它们来横向遍历 DOM 树。
jQuery siblings()
方法
jQuery siblings()
方法用于获取所选元素的兄弟元素。
以下示例将在文档就绪时通过添加类 .highlight
来突出显示 <p>
元素的兄弟节点,也就是 <h1>
和 <ul>
元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery siblings() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").siblings().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>
你可以选择在 siblings()
方法中包含一个或多个选择器作为参数来过滤搜索兄弟节点。下面的例子将在 <p>
元素的兄弟元素也就是 <ul>
元素的周围添加边框。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery siblings() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").siblings("ul").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 next()
方法
jQuery next()
方法用于获取紧随其后的兄弟,即所选元素的下一个兄弟元素。以下示例将突出显示 <p>
元素的下一个兄弟 <ul>
元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery next() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").next().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 nextAll()
方法
jQuery nextAll()
方法用于获取所选元素的所有后续兄弟元素。
以下示例将突出显示 <p>
旁边元素的所有兄弟节点。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery nextAll() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").nextAll().addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<p>This is another paragraph.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery nextUntil()
方法
jQuery nextUntil()
方法用于获取所有后续的兄弟元素,但不包括选择器匹配的元素后面的元素。简单来说,我们可以说它返回 DOM 层次结构中两个给定元素之间的所有下一个兄弟元素。
以下示例将突出显示除 <ul>
元素之外的 <h1>
元素的所有后续兄弟元素,即突出显示 <p>
元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery nextUntil() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("h1").nextUntil("ul").addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<p>This is another paragraph.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery prev()
方法
jQuery prev()
方法用于获取前一个兄弟,即所选元素的前一个兄弟元素。以下示例将突出显示 <ul>
元素的前一个兄弟元素,也就是 <p>
元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery prev() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("ul").prev().addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<p>This is another paragraph.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery prevAll()
方法
jQuery prevAll()
方法用于获取所选元素的所有前面的兄弟节点。
以下示例将突出显示 <ul>
元素前面的所有兄弟节点。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery prevAll() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("ul").prevAll().addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<p>This is another paragraph.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>
jQuery prevUntil()
方法
jQuery prevUntil()
方法用于获取所有前面的兄弟节点,但不包括选择器匹配的元素。简单来说,我们可以说它返回 DOM 层次结构中两个给定元素之间的所有先前兄弟元素。
以下示例将突出显示除 <h1>
元素之外的 <ul>
元素的所有先前兄弟元素,即突出显示 <p>
元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery prevUntil() Demo</title>
<style type="text/css">
.highlight{
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("ul").prevUntil("h1").addClass("highlight");
});
</script>
</head>
<body>
<div class="container">
<h1>Hello World</h1>
<p>This is a <em>simple paragraph</em>.</p>
<p>This is another paragraph.</p>
<ul>
<li>Item One</li>
<li>Item Two</li>
</ul>
</div>
</body>
</html>