jQuery 遍历 - 祖先

祖先是父、祖父或曾祖父等等。

通过 jQuery,您能够向上遍历 DOM 树,以查找元素的祖先。

向上遍历 DOM 树

这些 jQuery 方法很有用,它们用于向上遍历 DOM 树:

  • parent()
  • parents()
  • parentsUntil()

jQuery parent() 方法

parent() 方法返回被选元素的直接父元素。

该方法只会向上一级对 DOM 树进行遍历。

下面的例子返回每个 <span> 元素的的直接父元素:

实例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery.js"></script>
<style>
.ancestors *{
	display:block;
	border:2px #CCC solid;
	color:#F00;
	padding:5px;
	margin:15px;
}
</style>
<script>
$(document).ready(function(){
	$("span").parent().css({"color":"#00F","border":"2px solid #00F"})
})
</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> 元素的所有祖先:

实例

用法和parent()相同

<script>
$(document).ready(function(){
	$("span").parents().css({"color":"#00F","border":"2px solid #00F"})
})
</script>
效果图:


也可以使用可选参数来过滤对祖先元素的搜索。

下面的例子返回所有 <span> 元素的所有祖先,并且它是 <ul> 元素:

实例

<script>
$(document).ready(function(){
	//$("span").parent().css({"color":"#00F","border":"2px solid #00F"})
	//$("span").parents().css({"color":"#00F","border":"2px solid #00F"})
	 $("span").parents("ul").css({"color":"#00F","border":"2px solid #00F"});
})
</script>
效果图:


jQuery parentsUntil() 方法

parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

下面的例子返回介于 <span> 与 <div> 元素之间的所有祖先元素:

实例

$(document).ready(function(){
	//$("span").parent().css({"color":"#00F","border":"2px solid #00F"})
	//$("span").parents().css({"color":"#00F","border":"2px solid #00F"})
	// $("span").parents("ul").css({"color":"#00F","border":"2px solid #00F"});
	 $("span").parentsUntil("div").css({"color":"#00F","border":"2px solid #00F"});
})
效果图;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值