003-JQuery选择器
基本选择器
- #id :根据给定的ID匹配一个元素
- .class :根据给定的类匹配元素
- element :根据给定的元素名匹配所有元素
- 组合选择selector1,selector2,selectorN:将每一个选择器匹配到的元素合并后一起返回,
- * :匹配所有元素
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <!DOCTYPE html> 2 <head> 3 <meta charset="utf-8"> 4 <title>Selecter</title> 5 6 <script src="js/jquery-1.8.0.min.js" charset="utf-8"></script> 7 8 <style media="screen"> 9 div{ 10 float: left; 11 width: 200px; 12 height: 100px; 13 margin: 10px; 14 border: solid 1px #ccc; 15 } 16 </style> 17 </head> 18 <body> 19 <div id="box">box</div> 20 <div class="box1">box1</div> 21 <div ><p class="myp">textp</p></div> 22 23 <script type="text/javascript"> 24 // 根据元素名匹配 25 $("div").css("background","#ccc"); 26 // 根据ID匹配 27 $("#box").css("background","red"); 28 // 根据类名匹配 29 $(".box1").css("background","green"); 30 // 组合匹配 31 $("#box,.box1,p.myp").css("font-size","16px"); 32 </script> 33 </body>
结果:
层次选择器
- ancestor descendant :在给定的祖先元素下匹配所有的后代元素
- parent > child :在给定的父元素下匹配所有的子元素
- prev + next :匹配所有紧接在 prev 元素后的 next 元素
- prev ~ siblings :匹配 prev 元素之后的所有 siblings 元素
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <!DOCTYPE html> 2 <head> 3 <meta charset="utf-8"> 4 <title>Selecter</title> 5 6 <script src="js/jquery-1.8.0.min.js" charset="utf-8"></script> 7 8 </head> 9 <body> 10 <div id="box"> 11 <p>line1</p> 12 <p>line2</p> 13 <p>line3</p> 14 <p>line4</p> 15 <span> 16 <p>line5</p> 17 </span> 18 </div> 19 <p>line6</p> 20 <p>line7</p> 21 22 <script type="text/javascript"> 23 // 在给定的祖先元素div下匹配所有的后代元素 24 $("div p").css("color","red"); 25 // 在给定的父元素div下匹配所有的子元素 26 $("div>p").css("font-weight","800"); 27 // 匹配所有紧接在 div 元素后的 p 元素 28 $("div+p").css("background","blue"); 29 // 匹配 div 元素之后的所有 p 元素 30 $("div~p").css("color","green"); 31 </script> 32 </body>
结果:
基本过滤选择器
- :first :获取第一个元素
- :last :获取最后一个元素
- :not(selector) :去除所有与给定选择器匹配的元素
- :even :匹配所有索引值为偶数的元素,从 0 开始计数
- :odd :匹配所有索引值为奇数的元素,从 0 开始计数
- :eq(index) :匹配一个给定索引值的元素
- :gt(index) :匹配所有大于给定索引值的元素
- :lt(index) :匹配所有小于给定索引值的元素
- :header :匹配如 h1, h2, h3之类的标题元素
- :animated :匹配所有正在执行动画效果的元素
- :focus :匹配当前获取焦点的元素
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>Selecter</title> <script src="js/jquery-1.8.0.min.js" charset="utf-8"></script> </head> <body> <h1>header</h1> <div class="box"> <p>line1</p> <p>line2</p> <p class="myp">line3</p> <p class="myp">line4</p> <p>line5</p> <p>line6</p> <p>line7</p> </div> <script type="text/javascript"> // 第一个p元素 $("p:first").css("color","red"); // 最后一个p元素 $("p:last").css("color","blue"); // 除了类名为 myp 的所有p元素 $("p:not(.myp)").css("font-weight","800"); // 下标为偶数的所有p元素 $("p:even").css("background","#999"); // 下标为奇数的所有p元素 $("p:odd").css("background","#eee"); // 下标为4的p元素 $("p:eq(4)").css("color","green"); // 下标大于4的p元素 $("p:gt(4)").css("font-size","12px"); // 下标小于4的p元素 $("p:lt(4)").css("font-size","16px"); // header:匹配如 h1, h2, h3之类的标题元素 $(":header").css("font-style","italic"); </script> </body>
结果:
内容与可见性选择器
- :contains(text) :匹配包含给定文本的元素
- :has(selector) :匹配含有选择器所匹配的元素的元素
- :empty :匹配所有不包含子元素或者文本的空元素
- :parent :匹配含有子元素或者文本的元素
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <!DOCTYPE html> 2 <head> 3 <meta charset="utf-8"> 4 <title>Selecter</title> 5 6 <script src="js/jquery-1.8.0.min.js" charset="utf-8"></script> 7 <style media="screen"> 8 p{ 9 width: 120px; 10 height:30px; 11 } 12 </style> 13 </head> 14 <body> 15 <div class="box"> 16 <p>PHP</p> 17 <p><b>JQuery</b></p> 18 <p>Java</p> 19 <p style="display:none;">C++</p> 20 <p>Javascript</p> 21 <p></p> 22 </div> 23 24 <script type="text/javascript"> 25 // 匹配p元素中包含”J“字母的元素 26 $("p:contains(J)").css("color","red"); 27 // 匹配p元素中没有内容或子元素的所有元素 28 $("p:empty").css("background","#666"); 29 // 匹配p元素中包含b标签的元素 30 $("p:has(b)").css("color","blue"); 31 // 匹配p元素中含有内容或子元素的所有元素 32 $("p:parent").css("background","#999"); 33 34 // 匹配隐藏的p元素 35 $("p:hidden").css("display","block"); 36 // 匹配显示的p元素 37 //$("p:visible").css("display","none") 38 </script> 39 </body>
结果:
属性选择器与子元素选择器
- [attribute] :匹配包含指定属性的元素
- [attribute=value] :匹配指定属性的值为value的元素
- [attribute!=value] :匹配指定属性的值不为value的元素
- [attribute^=value] :匹配给定的属性是以value开始的元素
- [attribute$=value] :匹配给定的属性是以value值结尾的元素
- [attribute*=value] :匹配给定的属性是以包含某些值的元素
- [selector1][selector2][selectorN] :复合属性选择器,需要同时满足多个条件时使用
示例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <!DOCTYPE html> 2 <head> 3 <meta charset="utf-8"> 4 <title>Selecter</title> 5 6 <script src="js/jquery-1.8.0.min.js" charset="utf-8"></script> 7 <style media="screen"> 8 table{ 9 border: solid 1px #333; 10 } 11 </style> 12 </head> 13 <body> 14 <div class="box"> 15 <p class="p1">line1</p> 16 <p id="p2">line2</p> 17 <p id="p3">line3</p> 18 <p class="p4">line4</p> 19 </div> 20 <div class="box2"> 21 <p class="p5">line5</p> 22 </div> 23 24 <script type="text/javascript"> 25 // 拥有ID属性的p元素 26 $("p[id]").css("color","red"); 27 // class属性为p1的元素 28 $("p[class='p1']").css("color","blue"); 29 // class属性以4为结尾的元素 30 $("p[class$='4']").css("color","green"); 31 // 第二个子元素 32 $("p:nth-child(2)").css("background","#666"); 33 // 本身是唯一的子元素 34 $("p:only-child").css("background","#666"); 35 </script> 36 </body>
表单选择器
- :input :匹配所有的input,textarea, select 和 button 元素
- :text :匹配所有的单行文本框
- :password :匹配所有密码框
- :radio :匹配所有单选按钮
- :checkbox :匹配所有复选框
- :submit :匹配所有提交按钮
- :image :匹配所有图像域
- :reset :匹配所有重置按钮
- :button :匹配所有按钮
- :file :匹配所有文件域
- :hidden :匹配所有不可见元素,或者type为hidden的元素
表单属性选择器
- :enabled :匹配所有可用元素
- :disabled :匹配所有不可用元素
- :checked :匹配所有选中的被选中元素(复选框、单选框等,不包括下拉select中的option)
- :selected :匹配所有选中的option元素