【Jquery系列】之Jquery 選擇器


1   概述

 本篇文章為穿插文章,ASP.NET MVC系列目前寫了如下幾篇:

寫該篇文章主要目的是為接下來的ASP.NET MVC 系列,如頁面之間傳值,ADO.NET和EF,Bootstrap等打基礎,本篇文章比較基礎,但比較全面,非常適合基礎快速掃盲。

2   基本選擇器

2.1  一覽表

2.2  示例代碼

 (1)id選擇器

將id為lastname元素的背景色設置為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("#lastname").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17     <div id="lastname">id為lastname的選擇器</div>
18 </body>
19 </html>
View Code

(2)類選擇器

將class為intro元素的背景色設置為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(".intro").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17     <div class="intro">div選擇器測試</div>
18     <p class="intro">p測試選擇器</p>
19 </body>
20 </html>
View Code

(3)元素選擇器

將p元素的背景色設置為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("p").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17      <p>p測試選擇器</p>
18 </body>
19 </html>
View Code

(4)所有選擇器

遍歷body下的所有元素,將其背景色設置為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("body *").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17     <div>選擇器測試</div>
18     <p>p元素</p>
19 </body>
20 </html>
View Code

(5)並列選擇器

 將元素p和元素div背景色設置為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("p,div").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17     <div>選擇器測試</div>
18     <p>p元素</p>
19 </body>
20 </html>
View Code

3   層次選擇器

3.1 一覽表

3.2 示例代碼

(1)parent>child(直系子元素,即直接下一代元素)

設置div元素的第一代元素為span的元素的背景色為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div>span").css("background-color", "#0000ff"); 11            
12  }); 13 
14     </script>
15 </head>
16 <body>
17     <div>
18         <span>DOM樹,DIV第一代</span>
19         <p>
20             <span>DOM樹,第二代</span>
21         </p>
22         <span>DOM樹,DIV第一代</span>
23     </div>
24 </body>
25 </html>
View Code

測試結果:

結果分析:根據如上代碼畫出的DOM樹如下,可以很清晰看出,DIV有三個直接孩子,即第一代span,p,span,代碼中div>span,表示div下的直接第一代span,因此,測試結果就不難理解了。

(2)prev+next(prev元素的下一個兄弟元素,等同於next()方法)

設置類為intro元素的下一個兄弟元素背景色為藍色

 1  <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(".intro+div").css("background-color", "#0000ff"); 11             //$(".intro").next("div").css("background-color", "#0000ff");
12            
13  }); 14 
15     </script>
16 </head>
17 <body>
18     <div>1</div>
19     <p class="intro">2</p>
20     <div>3</div>
21     <div>4</div>
22     <span class="item">5</span>
23     <div>6</div>
24 </body>
25 </html>
View Code

測試結果:

結果分析:根據如上代碼畫出DOM樹如下圖,測試結果顯而易見。

(3)prev~siblings(prev元素的所有兄弟元素,等同於nextAll()方法)

 設置類為intro元素之后的所有兄弟元素為div元素的背景色為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(".intro~div").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G0</div>
17     <div class="intro">G1</div>
18     <div>G2</div>
19     <span>G3</span>
20     <div>G4</div>
21 </body>
22 </html>
View Code

測試結果:

分析測試結果:根據如上代碼畫出DOM樹如下圖,測試結果顯而易見。

4   過濾選擇器

4.1 基本過濾選擇器

4.1.1  一覽表

4.1.2  代碼示例

(1):first(選取第一個元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("span:first").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <span>G1</span>
17     <span>G2</span>
18     <span>G3</span>
19 </body>
20 </html>
View Code

測試結果:

(2):last(選取最后一個元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("span:last").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <span>G1</span>
17     <span>G2</span>
18     <span>G3</span>
19 </body>
20 </html>
View Code

測試結果:

(3):not(取非元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:not(.wrap)").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div class="wrap">G2</div>
18 </body>
19 </html>
View Code

但是,請注意下面的代碼:當G1所在div和G2所在div是父子關系時,G1和G2都會變色。

1 <div>
2     G1    <div class="wrap">G2</div>
3 </div>
View Code

(4):even(索引為偶數,索引 index從0開始)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:even").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div>G2</div>
18     <div>G3</div>
19     <div>G4</div>
20 </body>
21 </html>
View Code

測試結果:

(5):odd(索引為奇數,索引 index從0開始)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:odd").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div>G2</div>
18     <div>G3</div>
19     <div>G4</div>
20 </body>
21 </html>
View Code

測試結果:

(6):eq(x)(取指定索引的元素,x為從0開始的索引)

設置索引為2的div元素背景為藍色

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:eq(2)").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div>G2</div>
18     <div>G3</div>
19     <div>G4</div>
20 </body>
21 </html>
View Code

測試結果:

(7):lt(x))(取小於指定索引的元素,x為從0開始的索引)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:lt(2)").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div>G2</div>
18     <div>G3</div>
19     <div>G4</div>
20 </body>
21 </html>
View Code

測試結果:

(8):gt(x))(取大於指定索引的元素,x為從0開始的索引)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:gt(2)").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <div>G1</div>
17     <div>G2</div>
18     <div>G3</div>
19     <div>G4</div>
20 </body>
21 </html>
View Code

測試結果:

(8):header(取h1-h6標題元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(":header").css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14 </head>
15 <body>
16     <h1>測試H1標題</h1>
17     <div>G1</div>
18     <div>G2</div>
19     <div>G3</div>
20     <h2>測試h2標題</h2>
21     <h3>測試h3標題</h3>
22     <h4>測試h4標題</h4>
23     <div>G4</div>
24     <h5>測試h5標題</h5>
25     <h6>測試h6標題</h6>
26 </body>
27 </html>
View Code

測試結果:

(9):animated(所有動畫元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10  function aniDiv() { 11                 $("#box").animate({ width: 300 }, "slow"); 12                 $("#box").animate({ width: 100 }, "slow", aniDiv); 13  } 14  aniDiv(); 15             $(".btn1").click(function () { 16                 $(":animated").css("background-color", "#0000ff"); 17  }); 18  }); 19 
20     </script>
21     <style>
22  div { 23  background: #98bf21; 24  height: 40px; 25  width: 100px; 26  position: relative; 27                 margin-bottom: 5px; 28  } 29     </style>
30 </head>
31 <body>
32     <div></div>
33     <div id="box"></div>
34     <div></div>
35     <button class="btn1">Mark animated element</button>
36 </body>
37 </html>
View Code

測試結果:

 

4.2 內容過濾選擇器

4.2.1 一覽表

4.2.2 示例代碼

(1):contains(text)(取包含text文本的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div:contains("G2")').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div>G3</div>
20 </body>
21 </html>
View Code

測試結果:

(2):empty(取不包含子元素或文本為空的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div:empty').html('沒有內容'); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div>G3</div>
20     <div></div>
21 </body>
22 </html>
View Code

測試結果:

(3) :has(selector)(取選擇器匹配的元素)

即使span不是div的直系子元素,也會生效

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             // 為包含span元素的div添加邊框
11             $('div:has(span)').css('border', '1px solid #000'); 12  }); 13 
14     </script>
15     
16 </head>
17 <body>
18     <div>
19         <h2>
20             A     <span>B</span>
21         </h2>
22     </div>
23 </body>
24 </html>
View Code

測試結果:

(4):parent(取包含子元素或文本的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $('ol li:parent').css('border', '1px solid #000'); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <ol>
18         <li></li>
19         <li>A</li>
20         <li></li>
21         <li>D</li>
22     </ol>
23 </body>
24 </html>
View Code

測試結果:

4.3 可見性過濾選擇器

4.3.1 一覽表

4.3.2 示例代碼

(1):hidden(取不可見的元素)

匹配display:none,<input type="hidden" />,visibility:hidden,capacity:0元素

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $('div:hidden').show(500); 11             alert($('input:hidden').val()); 12  }); 13     </script>
14     <style type="text/css">
15  div         16  { 17  margin: 10px; 18  width: 200px; 19  height: 40px; 20  border: 1px solid #FF0000; 21  display:block; 22  } 23 
24             .hid-1         25  { 26  display: none; 27  } 28 
29             .hid-2         30  { 31  visibility: hidden; 32  } 33         
34     </style>
35 </head>
36 <body>
37     <div class="hid-1">display: none</div>
38     <div class="hid-2">visibility: hidden</div>
39     <input type="hidden" value="hello" />
40 </body>
41 </html>
View Code

測試結果:

(2):visible(取可見的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div:visible').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div style="display:none">G1</div>
18     <div>G2</div>
19     <div style="display:none">G3</div>
20     <div>G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

4.4 屬性過濾選擇器

4.4.1 一覽表

4.4.2 代碼示例

(1)[attribute](取擁有attribute屬性的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div[class]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div>G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

(2)[attribute = value](取attribute屬性值等於value)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div[class=div3]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div class="div3">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

(3) [attribute != value](取attribute屬性值不等於value的元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div[class!=div3]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div class="div3">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

(4)[attribute $= value](attribute屬性值以value結束)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('[id$=div]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div id="first_div">G1</div>
18     <div id="second_div">G2</div>
19     <div class="div3" title="3div">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
View Code

測試結果:

(5))[attribute^= value](attribute屬性值以value開始)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('[id^=first]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div id="first_div">G1</div>
18     <div id="second_div">G2</div>
19     <div class="div3" title="3div">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

(6)[attribute *= value](attribute屬性值包含value值)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('[id*=first]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div id="first_div">G1</div>
18     <div id="second_div">G2</div>
19     <div class="div3" title="3div">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
View Code

測試結果:

注釋:在屬性選擇器中,^$符號和正則表達式的開始結束符號表示的含義是一致的,*模糊匹配,類似於sql中的like '%str%'。

(7)[selector1][selector2](復合型屬性過濾器,同時滿足多個條件)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10              $('div[class=div3][title=3div]').css("background-color", "#0000ff"); 11  }); 12 
13     </script>
14     
15 </head>
16 <body>
17     <div>G1</div>
18     <div>G2</div>
19     <div class="div3" title="3div">G3</div>
20     <div class="div4">G4</div>
21 
22 </body>
23 </html>
24 
25 
26   
View Code

測試結果:

4.5 子元素過濾選擇器

4.5.1 一覽表

4.5.2 代碼示例

(1)first-child(表示匹配的第一個元素)和last-child(表示匹配的最后一個子元素)

 需要大家注意的是,:fisrst和:last返回的都是單個元素,而:first-child和:last-child返回的都是集合元素。舉個 例子:div:first返回的是整個DOM文檔中第一個div元素,而div:first-child是返回所有div元素下的第一個元素合並后的集 合。

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:first-child").css("background-color", "#B2E0FF"); 11             $("div:last-child").css("background-color", "red"); 12  }); 13     </script>
14 </head>
15 <body>
16      <div>
17          <div>1</div>
18          <div>2</div>
19          <p>3</p>
20      </div>
21     <div>4</div>
22     <div>last</div>
23 </body>
24 </html>
View Code

測試結果:

(3)only-child(當某個元素有且僅有一個子元素時,:only-child才會生效)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $("div:only-child").css("background-color", "red"); 11  }); 12     </script>
13 </head>
14 <body>
15      <div>
16          <div>1</div>
17          <div>2</div>
18          <p>3</p>
19      </div>
20     <div>4</div>
21     <div>last 22     <div>ddd</div>
23     </div>
24 </body>
25 </html>
View Code

測試結果:

(4)nth-child

看到這個就想起英文單詞里的,fourth, fifth, sixth……,nth表示第n個,:nth-child就表示第n個child元素。要注意的是,這兒的n不像eq(x)、gt(x)或lt(x)是從 0開始的,它是從1開始的,英文里好像也沒有zeroth這樣的序號詞吧。

:nth-child有三種用法:

1) :nth-child(x),獲取第x個子元素
2) :nth-child(even)和:nth-child(odd),從1開始,獲取第偶數個元素或第奇數個元素
3) :nth-child(xn+y),x>=0,y>=0。例如x = 3, y = 0時就是3n,表示取第3n個元素(n>=0)。實際上xn+y是上面兩種的通項式。(當x=0,y>=0時,等同於:hth- child(x);當x=2,y=0時,等同於nth-child(even);當x=2,y=1時,等同於:nth-child(odd))

4.6 表單對象屬性過濾選擇器

4.6.1 一覽表

4.6.2 代碼示例

(1):enabled和:disabled(取可用或不可用元素)

:enabled和:diabled的匹配范圍包括input, select, textarea

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(':enabled').css('border', '1px solid #FF0000'); 11             $(':disabled').css('border', '1px solid #0000FF'); 12  }); 13 
14     </script>
15     
16 </head>
17 <body>
18     <div>
19         <input type="text" value="可用的文本框" />
20     </div>
21     <div>
22         <input type="text" disabled="disabled" value="不可用的文本框" />
23     </div>
24     <div>
25         <textarea disabled="disabled">不可用的文本域</textarea>
26     </div>
27     <div>
28         <select disabled="disabled">
29             <option>English</option>
30             <option>簡體中文</option>
31         </select>
32     </div>
33 </body>
34 </html>
View Code

測試結果:

(2):checked(取選中的單選框或復選框元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(".btn1").click(function () { 11                 $(":checked").hide(); 12  }); 13  }); 14     </script>
15     
16 </head>
17 <body>
18     <input type="radio" name="sex" value="male" checked="checked" /> Male 19     <br />
20     <input type="radio" name="sex" value="female" /> Female 21     <br />
22  I have a bike: 23     <input type="checkbox" name="vehicle" value="Bike" />
24     <br />
25  I have a car: 26     <input type="checkbox" name="vehicle" value="Car" checked="checked" />
27     <br />
28  I have an airplane: 29     <input type="checkbox" name="vehicle" value="Airplane" />
30     <button class="btn1">Hide Checked Options</button>
31 
32 </body>
33 </html>
View Code

(3):selected(取下拉列表被選中的元素)

 1 <html>
 2 <head>
 3 <script type="text/javascript" src="/jquery/jquery.js"></script>
 4 <script type="text/javascript">
 5 $(document).ready(function(){  6   $(".btn1").click(function(){  7     $(":selected").hide();  8  });  9 }); 10 </script>
11 </head>
12 <body>
13 
14 <select multiple="multiple">
15   <option>Volvo</option>
16   <option selected="selected">Saab</option>
17   <option>Mercedes</option>
18   <option>Audi</option>
19 </select>
20 <br />
21 <button class="btn1">Hide Selected</button>
22 </body>
23 </html>
View Code

5   表單選擇器

5.1 一覽表

5.2 測試代碼

(1):input()(選擇所有input元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(":input").css("background-color", "#B2E0FF"); 11  }); 12     </script>
13 </head>
14 <body>
15     <form action="">
16         Name: <input type="text" name="user" />
17         <br />
18         Password: <input type="password" name="password" />
19         <br />
20         <button type="button">Useless Button</button>
21         <input type="button" value="Another useless button" />
22         <br />
23         <input type="reset" value="Reset" />
24         <input type="submit" value="Submit" />
25         <br />
26     </form>
27 </body>
28 </html>
View Code

測試結果:

(2):text(選取所有text元素)

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <script src="~/Scripts/jquery-1.10.2.js"></script>
 7     <title>JQuery函數</title>
 8     <script type="text/javascript">
 9  $(document).ready(function () { 10             $(":text").css("background-color", "#B2E0FF"); 11  }); 12     </script>
13 </head>
14 <body>
15     <form action="">
16         Name: <input type="text" name="user" />
17         <br />
18         Password: <input type="password" name="password" />
19         <br />
20         <button type="button">Useless Button</button>
21         <input type="button" value="Another useless button" />
22         <br />
23         <input type="reset" value="Reset" />
24         <input type="submit" value="Submit" />
25         <br />
26     </form>
27 </body>
28 </html>
View Code

測試結果:

(3):select和:button

(4)其他表單元素比較簡單,在此不列舉。

6   參考文獻

【01】http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp

【02】http://jqueryui.com/

【03】http://www.cnblogs.com/hulang/archive/2011/01/12/1933771.html

【04】http://www.jb51.net/article/57753.htm

【05】http://www.jquery123.com/

 

7   版權

 

  • 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
  • 博主網址:http://www.cnblogs.com/wangjiming/。
  • 極少部分文章利用讀書、參考、引用、抄襲、復制和粘貼等多種方式整合而成的,大部分為原創。
  • 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:2016177728@qq.com。
  • 可以轉載該博客,但必須著名博客來源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM