jQuery9种选择器

jQuery 9种选择器

1、基本选择器-5个

  

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7       <div id="div1ID">div1</div>
 8       <div id="div2ID">div2</div>
 9       <span class="myClass">span1</span>
10       <span class="myClass">span2</span>
11       <span class="myClass">span3</span>
12       <p>p</p>
13       <script type="text/javascript">
14       
15           //1)查找ID为"div1ID"的元素--a)#id
16             //var $div = $("#div1ID");//一定要注意要加#号
17             //alert($div[0].nodeName);
18           alert($("#div1ID").html());
19           
20           //2)查找DIV元素的个数[size()方法和length属性]--b)element
21           //alert($("div").size());
22           //alert($("div").length);
23           
24           //3)查找所有样式是"myClass"的元素的个数--c).class
25           //alert($(".myClass").size());
26           
27           //4)查找所有DIV,SPAN,P元素的个数--d)selector1,selector2,selectorN
28           //alert($("div,span,p").length);
29           
30           //5)查找所有ID为div1ID,CLASS为myClass,P元素的个数
31           //alert($("#div1ID,.myClass,p").size());
32           
33       </script>
34   </body>
35 </html>

2、层级选择器-4个

  

form input:  查询form下所有input元素,含有后代关系,即包括儿子和孙子及后代
form>input:查询form下所有input元素,只有父子关系,没有后代关系
form+input:查询与form同级的第一个input元素,是兄弟关系
form~input:查询与form同级的所有input元素,是兄弟关系

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <form>
 8         <input type="text" value="a"/>        
 9         <table>
10             <tr>
11                 <td>
12                     <input type="checkbox" value="b"/>
13                 </td>
14             </tr>            
15         </table>
16         <input type="text" value="a1"/>
17     </form>
18     <input type="radio" value="c"/>
19     <input type="radio" value="d"/>
20     <input type="radio" value="e"/>
21     <script type="text/javascript">
22         //1)找到表单form下所有的input元素的个数--空格:代表后代,包括儿子,孙子及后代
23         //alert($("form input").size());
24         
25           //2)找到表单form下所有的直接儿子input元素个数-->:代表直接儿子,不包括孙子及后代
26           //alert($("form>input").size());
27           
28           //3)找到表单form同级第一个input元素的value属性值--+:代表同级第一个元素
29           //alert($("form+input").val());    
30           
31           //4)找到所有与表单form同级的input元素个数--~:代表同级所有的元素
32           //alert($("form~input").size());
33     </script>
34   </body>
35 </html>

 

3、增强型基本选择器--

  

:first:查询第一个元素
:last:查询最后个元素
:checked:查询选中的复选框
:not(:checked):查询未选中的复选框
:even:查找表格的1、3、5...行(即索引值0、2、4...)--查找的是索引值为偶数(html页面中所有表格,第一个算起,以此类推)
:odd: 查找表格的0、2、4...行(即索引值1、3、5...)--查找的是索引值为奇数
:eq():索引从0开始 equals
:gt():大于索引号 greater than
:lt():小于索引号 less than
:header:查询所有<h1/2/3/4/5/6>标签
.css("key","value")为查询到的所有标签添加CSS样式

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <ul>
 8         <table><tr><td><li>list item 0</li></td></tr></table>
 9         <li>list item 1</li>
10         <li>list item 2</li>
11         <li>list item 3</li>
12         <li>list item 4</li>
13         <li>list item 5</li>
14         <table><tr><td><li>list item 6</li></td></tr></table>
15         <!--<table><tr><td><li>list item 7</li></td></tr></table>
16         <table><tr><td><li>list item 8</li></td></tr></table>!-->
17     </ul>
18     <input type="checkbox" checked/>
19     <input type="checkbox" checked/>
20     <input type="checkbox"/>
21     <table border="1">
22         <tr><td>line1</td></tr>
23         <tr><td>line2</td></tr>
24         <tr><td>line3</td></tr>
25     </table>    
26     <h1>h1</h1>
27     <h2>h2</h2>
28     <h3>h3</h3>
29     <p>p</p>
30     <script type="text/javascript">
31         //1)查找UL中第一个元素的内容
32         //alert($("ul li:first").html());//list item 0
33         //alert($("ul>li:first").html());//list item 1
34         
35           //2)查找UL中最后个元素的内容
36           //alert($("ul li:last").html());//list item 6
37           //alert($("ul>li:last").html());//list item 5
38         
39           //3)查找所有未选中的input元素个数
40           //alert($("input:not(:checked)").size());
41           
42           //4)查找表格的1、3、5...奇数行个数[从0开始计数]
43           //alert($("table tr:even").size());
44           
45           //5)查找表格的2、4、6...偶数行个数[从0开始计数]
46           //alert($("table tr:odd").size());
47           
48           //6)查找表格中第二行的内容,从索引号0开始
49           //alert($("table tr:eq(1)").html());
50           
51           //7)查找表格中第二第三行的个数,即索引值是1和2,也就是比0大
52           //alert($("table tr:gt(0)").size());
53           
54           //8)查找表格中第一第二行的个数,即索引值是0和1,也就是比2小
55           //alert($("table tr:lt(2)").size());
56           
57           //9)给页面内所有标题<h1><h2><h3>加上红色背景色
58           //$(":header").css("background","#ff0000;");
59     </script>
60   </body>
61 </html>

4、内容选择器-4个

  

:contains('john'):表示包含指定字符串的标签,字符串大小写敏感
:empty:表示查询空标签的元素
:has('p'):表示查询有子元素的元素
  .addClass("样式名"):为查询到的所有标签添加样式
:parent:表示查询非空标签

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4      <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5     <style type="text/css">
 6         .myClass{
 7             font-size:44px;
 8             color:blue
 9         }
10     </style>
11   </head>
12   <body>
13       <p>hha</p>
14     <div><p>John Resig hacket</p></div>
15     <div><p>George Martin</p></div>
16     <div>Malcom John Sinclair hacket</div>
17     <div>J. Ohn</div>
18     <p></p>
19     <p></p>
20     <div></div>
21     <script type="text/javascript">
22     
23         //1)查找所有包含文本"John"的div元素的个数
24         //alert($("div:contains('hacket')").size());
25         
26           //2)查找所有p元素为空的元素个数
27           //alert($("p:empty").size());
28           
29           //3)给所有包含p元素的div元素添加一个myClass样式
30           //$("div:has('p')").addClass("myClass");
31           
32           //4)查找所有含有子元素或者文本的p元素个数,即p为父元素
33           alert($("p:parent").size());
34           
35     </script>
36   </body>
37 </html>

5、可见性选择器-2个

  

:hidden:表示查询所有隐蔽的标签
:visible:表示查询所有显示的标签
  或:not(:hidden)

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4      <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <table border="1" align="center">
 8       <tr style="display:none">
 9           <td>Value 1</td>
10       </tr>
11       <tr>
12           <td>Value 2</td>
13       </tr>
14       <tr>
15           <td>Value 3</td>
16       </tr>
17     </table>
18     <script type="text/javascript">
19         //1)查找隐藏的tr元素的个数
20         //alert($("table tr:hidden").size());
21         //alert($("tr:hidden").size());
22             
23          //2)查找所有可见的tr元素的个数
24          //alert($("table tr:visible").size());
25          alert($("table tr:not(:hidden)").size());
26     </script>
27   </body>
28 </html>

6、属性选择器

  

div[id]:表示查询含有id属性的div元素
input[name='newsletter']:表示查询含有name属性,且其值是"newsletter"的input元素
input[name!='newsletter:表示查询含有name属性,且其值不是"newsletter"的input元素
input[name^='newsletter:表示查询含有name属性,且其值以"news"开头的input元素
input[name$='letter':表示查询含有name属性,且其值以"letter"结尾的input元素
input[name*='news']::表示查询含有name属性,且其包含"news"的input元素

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4      <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <div>
 8          <p>Hello!</p>
 9     </div>
10     <div id="test2"></div>
11     <input type="checkbox" name="newsletter" value="Hot Fuzz" />
12     <input type="checkbox" name="newsletter" value="Cold Fusion" id="myID" />
13     <input type="checkbox" name="newsaccept" value="Evil Plans" />
14     <script type="text/javascript">
15         //1)查找所有含有id属性的div元素个数
16         //alert($("div[id]").size());
17         
18           //2)查找所有name属性是newsletter的input元素,并将其选中
19           //alert($("input[name='newsletter']").size());
20           
21           //3)查找所有name属性不是newsletter的input元素,并将其选中
22           //alert($("input[name!='newsletter']").size());
23           //$("input[name!='newsletter']").attr("checked","checked");
24         
25           //4)查找所有name以'news'开始的input元素,并将其选中
26           //$("input[name^='news']").attr("checked","checked");
27           
28           //5)查找所有name 以'letter'结尾的input元素,并将其选中
29           //$("input[name$='letter']").attr("checked","checked");
30           
31           //6)查找所有name包含'news'的input元素,并将其选中
32           //$("input[name*='news']").attr("checked","checked");
33           
34           //7)找到所有含有id属性,并且它的name属性是以"letter"结尾的input元素,并将其选中
35           //$("input[id][name$='letter']").attr("checked","checked");
36     </script>
37   </body>
38 </html>

7、子元素选择器

  

:first-child:表示查询第一个子元素
:last-child:表示查询最后一个子元素
:only-child:表示查询只有一个子元素的元素
:nth-child(编号从1开始),表示查询指定编号的元素

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <ul>
 8       <li>John</li>
 9       <li>Karl</li>
10       <li>Brandon</li>
11     </ul>
12     <ul>
13       <li>Glen</li>
14       <li>Tane</li>
15       <li>Ralph</li>
16     </ul>
17     <ul>
18       <li>Jack</li>
19     </ul>
20     <script type="text/javascript">
21         //1)迭代每个ul中第1个li元素中的内容,索引从1开始
22         /*$("ul li:first-child").each(function(){//$("ul li:first")如果是这个,只找到第一个ul的li的内容
23             alert($(this).html());
24         });*/    
25 
26         //2)迭代每个ul中最后1个li元素中的内容,索引从1开始
27         /*$("ul li:last-child").each(function(){
28             alert($(this).html());
29         });*/                
30             
31         //3)在ul中查找是唯一子元素的li元素的内容
32         /*$("ul li:only-child").each(function(){
33             alert($(this).html());
34         });*/
35                 
36         //4)迭代每个ul中第2个li元素中的内容,索引从1开始
37         /*$("ul li:nth-child(2)").each(function(){
38             alert($(this).html());
39         });*/        
40     </script>
41   </body>
42 </html>

 

8、表单选择器

  

:input:查找所有input元素的个数,注:包含所有input,textarea,select和button元素
:text
:password
:radio
:checkbox
:file
:submit
:reset
:image
:file

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <form>
 8         <input type="button" value="Input Button"/><br/>
 9         <input type="checkbox" /><br/>
10         <input type="file" /><br/>
11         <input type="hidden" /><br/>
12         <input type="image" /><br/>
13         <input type="password" /><br/>
14         <input type="radio" /><br/>
15         <input type="radio" /><br/>
16         <input type="reset" /><br/>
17         <input type="submit" /><br/>
18         <input type="text" /><br/>
19         <select><option>Option</option></select><br/>
20         <textarea></textarea><br/>
21         <button>Button</button><br/>
22     </form>
23     <script type="text/javascript">
24         
25         //1)查找所有input元素的个数,
26           //alert($("input").size());//10
27           //alert($(":input").size());//14 注:包含所有input,textarea,select和button元素
28           
29           //2)查找所有文本框的个数
30           //alert($(":text").size());    
31           
32           //3)查找所有密码框的个数
33           //alert($(":password").size());
34           
35           //4)查找所有单选按钮的个数
36           //alert($(":radio").size());
37           
38           //5)查找所有复选框的个数
39           //alert($(":checkbox").size());
40           
41           //6)查找所有提交按钮的个数,非IE可能将<button>当作一个提交按钮
42           //alert($(":submit").size());//2
43           //alert($(":submit").val());
44         
45           //7)匹配所有图像域的个数
46           //alert($(":image").size());
47           
48           //8)查找所有重置按钮的个数
49           //alert($(":reset").size());
50           
51           //9)查找所有普通按钮的个数
52           //alert($(":button").size());
53           
54          //10)查找所有文件域的个数
55          //alert($(":file").size());
56          
57          //11)查找所有input元素为隐藏域的个数
58          //alert($(":input:hidden").size());
59     </script>
60   </body>
61 </html>

9、表单对象属性

  

:enabled:表示查询可用的元素
:disabled:表示查询不可用的元素
:checked:表示查询选中的复选/单选框的元素
:selected:表示查询选中的下拉框元素

 1 <html>
 2   <head>
 3     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 4     <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>
 5   </head>
 6   <body>
 7     <form>
 8       <input name="email" disabled="disabled" />
 9       <input name="password" disabled="disabled" />
10       <input name="id" />
11       <input type="checkbox" name="newsletter" checked="checked" value="Daily" />
12       <input type="checkbox" name="newsletter" value="Weekly" />
13       <input type="checkbox" name="newsletter" checked="checked" value="Monthly" />
14       <select>
15           <option value="1">Flowers</option>
16           <option value="2" selected="selected">Gardens</option>
17           <option value="3">Trees</option>
18       </select>
19     </form>
20     <script type="text/javascript">
21         //1)查找所有可用的input元素的个数
22         //alert($(":input:enabled").size());5//:input <select>也算作一个input
23         //alert($("input:enabled").size());4
24         
25          //2)查找所有不可用的input元素的个数
26          //alert($(":input:disabled").size());    
27          
28          //3)查找所有选中的复选框元素的个数
29          //alert($(":checkbox:checked").size());
30          
31          //4)查找所有未选中的复选框元素的个数
32          //alert($(":checkbox:not(:checked)").size());
33          
34          //5)查找所有选中的选项元素的个数
35         //alert($("select option:selected").size());
36     </script>
37   </body>
38 </html>
原文地址:https://www.cnblogs.com/hacket/p/3069723.html