在DOM树中横向遍历
在DOM树中有许多有用的jQuery方法可以横向遍历:
- siblings()
- next()
- nextAll()
- nextUntil()
- prev()
- prevAll()
- prevUntil()
jQuery siblings()方法
siblings()方法返回所选元素的所有兄弟元素。
以下示例返回<h3>的所有同级元素:
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>jq</title>
<head>
<style>
.siblings * {
display: block;
border: 2px solid #ddd;
color: #ccc;
padding: 5px;
margin: 15px;
}
</style>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$("h3").siblings().css({
"color": "red",
"border": "2px solid red"
});
});
</script>
</head>
<body class="siblings">
<div>div (父元素)
<p>p</p>
<span>span</span>
<h3>h3</h3>
<h4>h4</h4>
<p>p</p>
</div>
</body>
</html>
jQuery next()方法
next()方法返回所选元素的下一个兄弟元素。
以下示例返回<h3>的下一个兄弟
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>jq</title>
<head>
<style>
.siblings * {
display: block;
border: 2px solid #ddd;
color: #ccc;
padding: 5px;
margin: 15px;
}
</style>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js">
<script>
$(document).ready(function () {
$("h3").next().css({
"color": "red",
"border": "2px solid red"
});
});
</script>
</head>
<body class="siblings">
<div>div (父元素)
<p>p</p>
<span>span</span>
<h3>h3</h3>
<h4>h4</h4>
<p>p</p>
</div>
</body>
</html>
jQuery nextAll()方法
nextAll()方法返回所选元素的所有下一个兄弟元素。
以下示例返回<h3>的所有下一个兄弟元素:
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>jq</title>
<head>
<style>
.siblings * {
display: block;
border: 2px solid #ddd;
color: #ccc;
padding: 5px;
margin: 15px;
}
</style>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js">
<script>
$(document).ready(function () {
$("h3").nextAll().css({
"color": "red",
"border": "2px solid red"
});
});
</script>
</head>
<body class="siblings">
<div>div (父元素)
<p>p</p>
<span>span</span>
<h3>h3</h3>
<h4>h4</h4>
<p>p</p>
</div>
</body>
</html>
jQuery nextUntil()方法
nextUntil()方法返回两个给定参数之间的所有下一个兄弟元素。
以下示例返回<h3>和<h7>元素之间的所有兄弟元素:
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>蝴蝶教程(jc2182.com)</title>
<head>
<style>
.siblings * {
display: block;
border: 2px solid #ddd;
color: #ccc;
padding: 5px;
margin: 15px;
}
</style>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js">
<script>
$(document).ready(function () {
$("h3").nextUntil("h7").css({
"color": "red",
"border": "2px solid red"
});
});
</script>
</head>
<body class="siblings">
<div>div (父元素)
<p>p</p>
<span>span</span>
<h3>h3</h3>
<h4>h4</h4>
<h5>h5</h5>
<h6>h6</h6>
<h7>h7</h7>
<p>p</p>
</div>
</body>
</html>
可以在线尝试一下
jQuery prev(),prevAll() & prevUntil()方法
prev(),prevAll()和prevUntil()方法的工作方式与上述方法类似,但功能相反:它们返回先前的兄弟元素(沿DOM树中的兄弟元素向后遍历,而不是向前遍历)。
更好的jQuery 教程