祖先是父、祖父或曾祖父等等。
通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先。
向上遍历 DOM 树
这些 jQuery 方法很有用,它们用于向上遍历 DOM 树:
- parent()
- parents()
- parentsUntil()
jQuery parent() 方法
parent() 方法返回被选元素的直接父元素。
该方法只会向上一级对 DOM 树进行遍历。
下面的例子返回每个 <span> 元素的的直接父元素:
实例
<!DOCTYPE html>
<html>
<head>
<style>
.ancestors *
{
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
$("span").parent().css({"color":"red","border":"2px solid red"});
});
</script>
</head>
<body>
<div class="ancestors">
<div style="width:500px;">div (曾祖父)
<ul>ul (祖父)
<li>li (直接父)
<span>span</span>
</li>
</ul>
</div>
<div style="width:500px;">div (祖父)
<p>p (直接父)
<span>span</span>
</p>
</div>
</div>
</body>
</html>
jQuery parents() 方法
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
下面的例子返回所有 <span> 元素的所有祖先:
实例
<!DOCTYPE html>
<html>
<head>
<style>
.ancestors *
{
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
$("span").parents().css({"color":"red","border":"2px solid red"});
});
</script>
</head>
<body class="ancestors">body (曾曾祖父)
<div style="width:500px;">div (曾祖父)
<ul>ul (祖父)
<li>li (直接父)
<span>span</span>
</li>
</ul>
</div>
</body>
<!-- 最外围的红色边框,在 body 元素之前,是 html 元素(也是祖先)。 -->
</html>
您也可以使用可选参数来过滤对祖先元素的搜索。
下面的例子返回所有 <span> 元素的所有祖先,并且它是 <ul> 元素:
实例
$(document).ready(function(){
$("span").parents("ul");
});
jQuery parentsUntil() 方法
parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
下面的例子返回介于 <span> 与 <div> 元素之间的所有祖先元素:
实例
$(document).ready(function(){
$("span").parentsUntil("div");
});
jQuery 遍历函数
jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。
函数 | 描述 |
将元素添加到匹配元素的集合中。 | |
把堆栈中之前的元素集添加到当前集合中。 | |
获得匹配元素集合中每个元素的所有子元素。 | |
从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。 | |
获得匹配元素集合中每个元素的子元素,包括文本和注释节点。 | |
对 jQuery 对象进行迭代,为每个匹配元素执行函数。 | |
结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。 | |
将匹配元素集合缩减为位于指定索引的新元素。 | |
将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。 | |
获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。 | |
将匹配元素集合缩减为集合中的第一个元素。 | |
将匹配元素集合缩减为包含特定元素的后代的集合。 | |
根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。 | |
将匹配元素集合缩减为集合中的最后一个元素。 | |
把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。 | |
获得匹配元素集合中每个元素紧邻的同辈元素。 | |
获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。 | |
获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。 | |
从匹配元素集合中删除元素。 | |
获得用于定位的第一个父元素。 | |
获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。 | |
获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。 | |
获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。 | |
获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。 | |
获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。 | |
获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。 | |
获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。 | |
将匹配元素集合缩减为指定范围的子集。 |