4個方法:1、parent(),可以找出目前元素的“父元素”,語法“$(選擇器).parent(表達式)”;2、parents(),可查找所選元素的祖先元素,語法“$(選擇器).parents(表達式)”;3、parentsUntil(),可查找指定範圍的所有祖先元素,語法“$(選擇器).parentsUntil(表達式)” ;4、closest(),可被選元素的第一個祖先元素。
本教學操作環境:windows7系統、jquery3.6.1版本、Dell G3電腦。
jquery尋找父級的方法
#parent()
parents()
parentsUntil()
#closest()
方法一:parent()
在jQuery中,我們可以使用parent()方法來尋找目前元素的「父元素」。記住,元素只有一個父元素。
語法:
$(selector).parent(expression)
說明:參數expression表示jQuery選擇器表達式,用來過濾父元素。當參數省略時,則選擇所有的父元素。如果參數不省略,則選擇符合條件的父元素。
元素不是只有一個父元素麼?為什麼還有「符合條件的父元素」這個說法?對於這個,可以看看下面的例子。
範例:
<!DOCTYPE html> <html> <head> <script src="js/jquery-3.6.1.min.js"></script> <script type="text/javascript"> $(function() { $("p").parent(".lvye").css("color", "red"); }) </script> </head> <body> <div> <p>php中文网jQuery入门教程</p> </div> <div class="lvye"> <p>php中文网jQuery入门教程</p> </div> <div> <p>php中文网jQuery入门教程</p> </div> </body> </html>
效果如下:
#方法二:parents()
parents()方法和parent()方法相似,都是用來找出所選元素的祖先元素。但是這兩個方法也有著本質上的差異。 其實這2個方法也很好區分,parent是單數形式,找出的祖先元素只有1個,那就是父元素。而parents是複數形式,尋找的祖先元素當然是所有的祖先元素。 語法:$(selector).parents(expression)
範例:
<!DOCTYPE html> <html> <head> <script src="js/jquery-3.6.1.min.js"></script> <script type="text/javascript"> $(function() { $("#btn").click(function() { var parents = $("span").parents() .map(function() { return this.tagName; }) .get().join(","); alert("span元素的所有祖先元素为:" + parents.toLowerCase()); }); }) </script> </head> <body> <div> <p><strong><span>jQuery入门教程</span></strong></p> </div> <input id="btn" type="button" value="获取" /> </body> </html>
效果如下:
#方法三:parentsUntil( )
parentsUntil()方法是對parents()方法的一個補充,它可以找出所有指定範圍的祖先元素,相當於在parents()方法傳回集合中截取部分祖先元素。 語法:$(selector).parentsUntil(expression)
參數selector表示jQuery選擇器表達式字串,用來決定範圍的祖先元素。此參數為可選,如果省略,則將符合所有祖先元素,這一點跟parents()方法查找結果是一樣的。 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.ancestors *{
display: block;
border: 2px solid lightgrey;
color: lightgrey;
padding: 5px;
margin: 15px;
}
</style>
<script src="js/jquery-3.6.1.min.js"></script>
<script>
$(document).ready(function(){
$("span").parentsUntil("div").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>
<!-- 在这个例子中,我们选择在span和div元素之间的所有祖先元素。 -->
</html>
#語法:
$(selector).closest(expression)