4個(gè)方法:1、parent(),可以查找當(dāng)前元素的“父元素”,語法“$(選擇器).parent(表達(dá)式)”;2、parents(),可查找所選元素的祖先元素,語法“$(選擇器).parents(表達(dá)式)”;3、parentsUntil(),可查找指定范圍的所有祖先元素,語法“$(選擇器).parentsUntil(表達(dá)式)”;4、closest(),可被選元素的第一個(gè)祖先元素。
前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、jquery3.6.1版本、Dell G3電腦。
jquery尋找父級的方法
-
parent()
-
parents()
-
parentsUntil()
-
closest()
方法一:parent()
在jQuery中,我們可以使用parent()方法來查找當(dāng)前元素的“父元素”。記住,元素只有一個(gè)父元素。
語法:
$(selector).parent(expression)
說明:參數(shù)expression表示jQuery選擇器表達(dá)式,用來過濾父元素。當(dāng)參數(shù)省略時(shí),則選擇所有的父元素。如果參數(shù)不省略,則選擇符合條件的父元素。
元素不是只有一個(gè)父元素么?為什么還有“符合條件的父元素”這一說法?對于這個(gè),可以看看下面的例子。
舉例:
<!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中文網(wǎng)jQuery入門教程</p> </div> <div class="lvye"> <p>php中文網(wǎng)jQuery入門教程</p> </div> <div> <p>php中文網(wǎng)jQuery入門教程</p> </div> </body> </html>
效果如下:
方法二:parents()
parents()方法和parent()方法相似,都是用來查找所選元素的祖先元素。但是這兩個(gè)方法也有著本質(zhì)的區(qū)別。
其實(shí)這2個(gè)方法也很好區(qū)分,parent是單數(shù)形式,查找的祖先元素只有1個(gè),那就是父元素。而parents是復(fù)數(shù)形式,查找的祖先元素當(dāng)然是所有的祖先元素。
語法:
$(selector).parents(expression)
說明:參數(shù)expression表示jQuery選擇器表達(dá)式字符串,用來過濾祖先元素。當(dāng)參數(shù)省略時(shí),則選擇所有的祖先元素。如果參數(shù)不省略,則選擇符合條件的祖先元素。
舉例:
<!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()方法的一個(gè)補(bǔ)充,它可以查找指定范圍的所有祖先元素,相當(dāng)于在parents()方法返回集合中截取部分祖先元素。
語法:
$(selector).parentsUntil(expression)
說明:參數(shù)expression表示jQuery選擇器表達(dá)式字符串,用來過濾祖先元素。當(dāng)參數(shù)省略時(shí),則選擇所有的祖先元素。如果參數(shù)不省略,則選擇符合條件的祖先元素。
參數(shù)selector表示jQuery選擇器表達(dá)式字符串,用以確定范圍的祖先元素。該參數(shù)為可選,如果省略,則將匹配所有祖先元素,這一點(diǎn)跟parents()方法查找結(jié)果是一樣的。
<!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 (曾曾祖父節(jié)點(diǎn)) <div style="width:500px;">div (曾祖父節(jié)點(diǎn)) <ul>ul (祖父節(jié)點(diǎn)) <li>li (直接父節(jié)點(diǎn)) <span>span</span> </li> </ul> </div> </body> <!-- 在這個(gè)例子中,我們選擇在span和div元素之間的所有祖先元素。 --> </html>
方法4:closest()
closest() 方法返回被選元素的第一個(gè)祖先元素。
-
從當(dāng)前元素開始
-
沿 DOM 樹向上遍歷,并返回匹配所傳遞的表達(dá)式的第一個(gè)單一祖先
-
返回包含零個(gè)或一個(gè)元素的 jQuery 對象
語法:
$(selector).closest(expression)
示例:返回 <span> 的第一個(gè)父元素,是一個(gè) <li> 元素:
<!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").closest("li").css({"color":"red","border":"2px solid red"}); }); </script> </head> <body class="ancestors">body (曾曾祖先節(jié)點(diǎn)) <div style="width:500px;">div (曾祖先節(jié)點(diǎn)) <ul>ul (第二祖先 - 第二祖先節(jié)點(diǎn)) <ul>ul (第一祖先 - 第一祖先節(jié)點(diǎn)) <li>li (直接父節(jié)點(diǎn)) <span>span</span> </li> </ul> </ul> </div> </body> </html>
【推薦學(xué)習(xí):javascript視頻教程】