jQuery学习之旅 1 选择器【一】

1. 基础选择器 Basics


名称 说明 举例
#id 根据元素Id选择 $("divId") 选择ID为divId的元素
element 根据元素的名称选择, $("a") 选择所有<a>元素
.class 根据元素的css类选择 $(".bgRed") 选择所用CSS类为bgRed的元素
* 选择所有元素 $("*")选择页面所有元素
selector1, 
selector2, 
selectorN
可以将几个选择器用","分隔开然后再拼成一个选择器字符串.会同时选中这几个选择器匹配的内容. $("#divId, a, .bgRed")

 

[javascript]  view plain  copy
 print ?
  1. function f1(){  
  2.     //通过【id选择器】获得节点  
  3.     //$()符号就是jquery的函数,函数执行完毕返回对象  
  4.     $("#bread").css('color','red');  
  5.   
  6.     //【class类别选择器】  
  7.     $(".milk").css('color','blue');  
  8.   
  9.     //【tag标签选择器】  
  10.     $("h2").css('color','green');  
  11.     $("p").css('color','gold');  
  12.   
  13.     //【通配符选择器*】 ,获得全部节点  
  14.     $("*").css("color",'blue');  
  15.   
  16.     //【联合选择器】  
  17.     $("#bread,.milk,p").css('background-color','lightblue');  
  18. }  
  19.         </script>  
  20.   
  21.         <style type="text/css">  
  22.         #bread{}  
  23.         .milk{}  
  24.         p{}  
  25.         *{}  
  26.         #bread,.milk,p {}  
  27.         </style>  
  28.     </head>  
  29.   
  30.   
  31.     <body>  
  32.         <h2>基本选择器</h2>  
  33.         <div id="bread">bread</div>  
  34.         <div class="milk">milk</div>  
  35.         <div>apple</div>  
  36.         <p>banana</p>  
  37.         <input type="button" value="触发" onclick="f1()">  
  38.     </body>  

[学习建议]: 大家暂时记住基础选择器即可, 可以直接跳到下一节"jQuery选择器实验室"进行动手练习, 以后再回来慢慢学习全部的选择器, 或者用到的时候再回来查询.


2.层次选择器 Hierarchy


名称 说明 举例
ancestor descendant 使用"form input"的形式选中form中的所有input元素.即ancestor(祖先)为from, descendant(子孙)为input. $(".bgRed div") 选择CSS类为bgRed的元素中的所有<div>元素.
parent > child 选择parent的直接子节点child.  child必须包含在parent中并且父类是parent元素. $(".myList>li") 选择CSS类为myList元素中的直接子节点<li>对象.
prev + next prev和next是两个同级别的元素. 选中在prev元素后面的next元素. $("#hibiscus+img")选在id为hibiscus元素后面的img对象.
prev ~ siblings  选择prev后面的根据siblings过滤的元素
注:siblings是过滤器
$("#someDiv~[title]")选择id为someDiv的对象后面所有带有title属性的元素

实例:

2.1     ancestor descendant :父子级关系

                               派生选择器

                               $(“#bread  .milk”)

                               <divid=bread><input class=milk><spanclass=milk>

                                   <div><p class=milk></div>

                               </div>

                               在指定的父级选择器下边获得全部的派生子级(后代)元素


2.2     parent > child :父子级关系

                               在给定的父元素下匹配所有子元素.

                               $(“#bread >.milk”)

                               <divid=bread><input class=milk><spanclass=milk>

                                   <div><pclass=milk></div>

                               </div>

                              

2.3    prev + next :兄弟级关系

                               匹配紧接在 所有prev 元素后的 next(下一个) 元素

                               $(“#bread + .milk”)

                               <divid=bread><span class=milk></span></div>

                               <p class=milk></p>

                               <spanclass=milk></span>


2.4     prev ~ siblings:兄弟级关系

                               匹配 prev 元素之后的所有 siblings 元素.

                               $(“#bread ~ .milk”)

                               <span class=milk>

                               <divid=bread><span class=milk></span></div>

                               <p class=milk></p>

                               <span class=milk></span>

                               <inputclass=milk />

       

[javascript]  view plain  copy
 print ?
  1. function f1(){  
  2.     //派生选择器$("sel1 sel2")  
  3.     $("#bread .milk").css("color","red");  
  4.   
  5.     //子元素选择器$("sel1 > sel2")  
  6.     $("#bread > .milk").css('color','red');  
  7.   
  8.     //匹配紧贴在一起的下一个元素  
  9.     $("#bread + .milk").css("color",'red');  
  10.   
  11.     //匹配prev之后所有的兄弟节点  
  12.     //$("prev ~ sibling")  
  13.     $("#bread ~ .milk").css("color","red");  
  14. }  
  15.   
  16.         </script>  
  17.   
  18.         <style type="text/css">  
  19.         </style>  
  20.     </head>  
  21.   
  22.   
  23.     <body>  
  24.         <h2>层次选择器</h2>  
  25.         <div id="bread">  
  26.             <input type="text" value="hello" class="milk">  
  27.             <span class="milk">world</span>  
  28.             <div>  
  29.                 <span class="milk">pear</span>  
  30.             </div>  
  31.         </div>  
  32.         <p class="milk">this is p tag</p>  
  33.         <span class="milk">desk</span>  
  34.   
  35.         <div id="apple"><span class="milk">第二个span</span></div>  
  36.         <input type="button" value="触发" onclick="f1()" />  
  37.     </body>  


3.基本过滤器 Basic Filters


名称 说明 举例
:first 匹配找到的第一个元素 查找表格的第一行:$("tr:first")
:last 匹配找到的最后一个元素 查找表格的最后一行:$("tr:last")
:not(selector) 去除所有与给定选择器匹配的元素 查找所有未选中的 input 元素: $("input:not(:checked)")
:even 匹配所有索引值为偶数的元素,从 0 开始计数 查找表格的1、3、5...行:$("tr:even")
:odd 匹配所有索引值为奇数的元素,从 0 开始计数 查找表格的2、4、6行:$("tr:odd")
:eq(index) 匹配一个给定索引值的元素 
注:index从 0 开始计数
查找第二行:$("tr:eq(1)")
:gt(index) 匹配所有大于给定索引值的元素 
注:index从 0 开始计数
查找第二第三行,即索引值是1和2,也就是比0大:$("tr:gt(0)")
:lt(index) 选择结果集中索引小于 N 的 elements 
注:index从 0 开始计数
查找第一第二行,即索引值是0和1,也就是比2小:$("tr:lt(2)")
:header 选择所有h1,h2,h3一类的header标签. 给页面内所有标题加上背景色: $(":header").css("background", "#EEE");
:animated 匹配所有正在执行动画效果的元素 只有对不在执行动画效果的元素执行一个动画特效:

$("#run").click(function(){ 
  $("div:not(:animated)").animate({ left: "+=20" }, 1000); 
});

 

[javascript]  view plain  copy
 print ?
  1. function f1(){  
  2.     $("li").css("color","red"); //获得全部li元素  
  3.     //过滤选择器  
  4.     $("li:first").css("color","red"); //把全部li元素的第一个过滤出来  
  5.     $("li:last").css("color","red");  //把全部li元素的最后一个过滤出来  
  6.   
  7.     $("li:odd").css("color","red");  //奇数 li,下标从0开始计算  
  8.     $("li:even").css("color","red");  //偶数li,下标从0开始计算  
  9.   
  10.     $("li:eq(6)").css("color","red");  //过滤指定下标的节点 eq  (equal)  
  11.   
  12.     //过滤下标大于某个范围的元素  
  13.     $("li:gt(3)").css("color","red");  //gt : greate than(greate wall)  
  14.     $("li:lt(4)").css("color","red");  //lt :  less than  
  15.   
  16.     //过滤器【嵌套】使用  
  17.     $("li:odd")  //奇数li  li的下标从0开始  
  18.     $("li:gt(0):odd").css("color","red")  //奇数,(智 [播])    
  19.     //li:gt(0)元素下标重新从0开始计算,再与odd进行赛选  
  20.   
  21.     $("li:gt(2):even").css("color","red");  //”客“ 开始  
  22.     $("li:gt(3):eq(2)").css("color","red");   //"集"字被过滤出来  
  23.   
  24.     $("li:not(#ke)").css("color","red"); //not去除指定的选择器元素  
  25.     $("li:not(#ke,#yu)").css("color","red"); //not去除指定的选择器元素  
  26.   
  27.     //$("*:header").css("color","red");//过滤h1 h2 h3 h4 h5 h6等标题标签  
  28.     //$("h2")//全部h2  
  29.     $(".apple:header").css("color","red");//第二个h2  
  30. }  
  31.   
  32.         </script>  
  33.   
  34.         <style type="text/css">  
  35.         </style>  
  36.     </head>  
  37.   
  38.     <body>  
  39.         <h2>我是正式标题</h2>  
  40.         <h2 class="apple">简单过滤选择器</h2>  
  41.         <ul class="apple">  
  42.             <li>传</li>  
  43.             <li>智</li>  
  44.             <li>播</li>  
  45.             <li id="ke">客</li>  
  46.             <li>教</li>  
  47.             <li id="yu">育</li>  
  48.             <li>集</li>  
  49.             <li>团</li>  
  50.         </ul>  
  51.         <input type="button" value="触发" onclick="f1()" />  
  52.     </body>  

4. 内容过滤器 Content Filters


名称 说明 举例
:contains(text) 匹配包含给定文本的元素 查找所有包含 "John" 的 div 元素:$("div:contains('John')")
:empty 匹配所有不包含子元素或者文本的空元素 查找所有不包含子元素或者文本的空元素:$("td:empty")
:has(selector) 匹配含有选择器所匹配的元素的元素 给所有包含 p 元素的 div 元素添加一个 text 类: $("div:has(p)").addClass("test");
:parent 匹配含有子元素或者文本的元素 查找所有含有子元素或者文本的 td 元素:$("td:parent")

实例: 

4.1    :contains(text)

       用法: $(”div:contains(’John’)”)

       匹配包含给定文本的元素

       <div>this is computer</div>

       <div>I amJohn</div>


4.2     :empty

       用法: $(”div:empty”)

       匹配所有不包含子元素或者文本的空元素

       <div>I am John</div>

       <div></div>

       <div><span></div>

       <div> </div>

       <div>bread</div>


4.3     :has(selector)

       用法: $(”div:has(.milk)”)

       匹配含有选择器所匹配的元素的元素

       <div></div>

       <div><pclass=”milk”></div>

       <div><spanclass=”milk”></div>


4.4     :parent

       用法: $(”p:parent”)

       匹配含有子元素或者文本的元素(元素必须有后代)

       <p></p>

       <p><span></p>

       <p>hello</p>

       <p>   </p>



5.可见性过滤器  Visibility Filters


名称 说明 举例

:hidden

匹配所有的不可见元素

注:在1.3.2版本中, hidden匹配自身或者父类在文档中不占用空间的元素.如果使用CSS visibility属性让其不显示但是占位,则不输入hidden.

查找所有不可见的 tr 元素:$("tr:hidden")
:visible 匹配所有的可见元素 查找所有可见的 tr 元素:$("tr:visible")

元素是隐藏的:


       display:none; 隐藏(不会占据物理空间)

       <input type=”hidden”>隐藏域

       visibility:hidden  隐藏(要占据物理空间)

      

       :hidden 获得隐藏元素(display  input type=hidden)有两种情况会起作用

       :visible获得可见元素

总结


       1.基本选择(id  class   tag标签   sel1,sel2,sel3联合   *)

       2. 层次选择器

       3. 简单过滤选择器(:first  :last   :eq(下标)   :gt()   :lt()    :odd   :even)

       4. 内容过滤选择器(:contains   :has   :empty  :parent)

       5. 可见性过滤选择器(:hidden  :visible)

你可能感兴趣的:(jquery)