1. 程式人生 > >Web開發——JavaScript庫(jQuery遍歷——祖先)

Web開發——JavaScript庫(jQuery遍歷——祖先)

  遍歷圖解:

1、jQuery 遍歷 - 祖先

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

  通過 jQuery,您能夠向上遍歷 DOM 樹,以查詢元素的祖先。

1.1 向上遍歷 DOM 樹

這些 jQuery 方法很有用,它們用於向上遍歷 DOM 樹:

  • parent():返回被選元素的直接父元素。 該方法只會向上一級對 DOM 樹進行遍歷。
  • parents():返回被選元素的所有祖先元素,它一路向上直到文件的根元素 (<html>)。也可以使用可選引數來過濾對祖先元素的搜尋。
  • parentsUntil():返回介於兩個給定元素之間的所有祖先元素。

1.2 舉例說明

  舉例1(parent() 方法,下面的例子返回每個 <span> 元素的的直接父元素):

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <!--<meta charset="utf-8">-->
 5         <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6         <meta http-equiv
="Content-Language" content="zh-cn" /> 7 <title>My test page</title> 8 9 <!--引用jQuery庫,src可以直接指向本地下載的jQery庫--> 10 <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">--> 11 <script src="jquery-3.3.1.js"
></script> 12 <script type="text/javascript"> 13 $(document).ready(function() { 14 <!--測試parent()方法--> 15 $("span").parent().css({"color":"red","border":"2px solid red"}); 16 }); 17 </script> 18 19 <style> 20 .ancestors * { 21 display: block; 22 border: 2px solid lightgrey; 23 color: lightgrey; 24 padding: 5px; 25 margin: 15px; 26 } 27 </style> 28 </style> 29 </head> 30 31 <body> 32 33 <!--測試parent()方法--> 34 <p>jQuery parent() 方法,parent() 方法返回被選元素的直接父元素。</p> 35 <div class="ancestors"> 36 <div style="width:500px;">div (曾祖父) 37 <ul>ul (祖父) 38 <li>li (直接父) 39 <span>span</span> 40 </li> 41 </ul> 42 </div> 43 44 <div style="width:500px;">div (祖父) 45 <p>p (直接父) 46 <span>span</span> 47 </p> 48 </div> 49 </div> 50 51 </body> 52 </html>

  輸出結果:

  舉例2(parents() 方法,下面的例子返回所有 <span> 元素的所有祖先:):

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <!--<meta charset="utf-8">-->
 5         <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6         <meta http-equiv="Content-Language" content="zh-cn" />
 7         <title>My test page</title>
 8         
 9         <!--引用jQuery庫,src可以直接指向本地下載的jQery庫-->
10         <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">-->
11         <script src="jquery-3.3.1.js"></script>
12         <script type="text/javascript">
13             $(document).ready(function() {
14                 <!--測試parents()方法-->
15                 $("span").parents().css({"color":"red","border":"2px solid red"});
16             });
17         </script>
18 
19         <style>
20             .ancestors * { 
21                 display: block;
22                 border: 2px solid lightgrey;
23                 color: lightgrey;
24                 padding: 5px;
25                 margin: 15px;
26             }
27             </style>
28         </style>
29     </head>
30     
31     <body class="ancestors">body (曾曾祖父)
32         <!--測試parents()方法-->
33         <div style="width:500px;">div (曾祖父)
34             <ul>ul (祖父)  
35                 <li>li (直接父)
36                     <span>span</span>
37                 </li>
38             </ul>
39         </div>
40 
41     </body>
42 </html>        

  輸出結果:

  舉例2(parentsUntil() 方法,下面的例子返回所有 <span> 元素的所有祖先:):

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <!--<meta charset="utf-8">-->
 5         <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 6         <meta http-equiv="Content-Language" content="zh-cn" />
 7         <title>My test page</title>
 8         
 9         <!--引用jQuery庫,src可以直接指向本地下載的jQery庫-->
10         <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">-->
11         <script src="jquery-3.3.1.js"></script>
12         <script type="text/javascript">
13             $(document).ready(function() {
14                 <!--parentsUntil()方法-->
15                 $("span").parentsUntil("div").css({"color":"red","border":"2px solid red"});
16             });
17         </script>
18 
19         <style>
20             .ancestors * { 
21                 display: block;
22                 border: 2px solid lightgrey;
23                 color: lightgrey;
24                 padding: 5px;
25                 margin: 15px;
26             }
27             </style>
28         </style>
29     </head>
30     
31     <body class="ancestors">body (曾曾祖父)
32         <!--parentsUntil()方法-->
33         <div style="width:500px;">div (曾祖父)
34             <ul>ul (祖父)  
35                 <li>li (直接父)
36                     <span>span</span>
37                 </li>
38             </ul>
39         </div>
40 
41     </body>
42 </html>        

  輸出結果:

2、jQuery 遍歷參考手冊

  如需瞭解所有的 jQuery 遍歷方法,請訪問 jQuery 遍歷參考手冊