zoukankan      html  css  js  c++  java
  • jQuery中的选择器

    一:css选择器
       (1)css选择器介绍:
          1.CSS选择器是一项出色的技术,它使网页的结构和表现形式完全分离,利用CSS选择器能轻松的对某个元素添加样式而不改动HTML结构。只需通过添加不同CSS规则就可以得到各种不同样式的网页.
          2.使某个样式应用于特定的HTML元素.首先需找到该元素.在CSS中.执行这一任务的表现规则称为CSS选择器.

      (2)css选择器的分类:
           选择器             语法               描述                            示例
           标签选择器      E{CSS规则}           以文档元素作为选择符           td{font-size:14px;120px}  a{text-decoration:none;}
           ID选择器        #ID{CSS规则}         以文档元素的唯一标识           #note{font-size:14px;120px}
                                                符ID作为选择符
           类选择器     E.className{css规则}    以文档元素的class作为选择器    div.note{font-size:14px;}  .dream{font-size:14px;}
           群组选择器   EI E2 E3{css规则}       多个选择符应用同样的样式规则   td,p,div.a{font-size:14px;}
           后代选择器   E F{css规则}            元素E的任意后代元素F           #link a{color:red}
           通配选择符   *{css规则}              以文档的所有元素标签选择器     *{font-size:14px;}
           注释: 几乎所有的主流浏览器都支持上面的这些常用的选择器.

       (3)css其它选择器:
           .伪类选择器(E:Pesude-Elements{CssRules})
           .子选择器(E>F{CssRules})
           .临近选择器(E+F{CssRules})
           .属性选择器([attr]{CssRules})
           注释:当遗憾的是主流浏览器并非完全支持所有的Css选择器。把CSS应用到网页中有3种方式,即行内样式表、内部样式表和外部样式表。
                class作为连接样式和网页结构的纽带。

    二:jQuery选择器:

        (1)jQuery选择器的介绍:
     1.jQuery选择器完全继承了CSS的风格.
     2.利用jQuery选择器可以非常便捷和快速的找出特定的DOM元素.为他们添加相应的行为.而无需担心浏览器是否支持.jQuery的行为规则都必须在获取元素后才能生效.
       (2)jQuery选择器的写法与Css选择器的写法十分相似,只不过两者作用的效果不同。
       (3)jQuery选择器与Css选择器的区别:
            1.CSS选择器找到元素后是添加样式.
     2.而jQuery选择器找到元素后是添加行为.
            特别注意:jQuery中涉及操作Css样式的部分比单纯的CSS功能更为强大,并拥有跨浏览器的兼容性。
       (4)jQuery选择器的优点:
            1.简洁的写法:$()函数在很多javascript类库中都被作为一个选择器元素来使用,在JQuery中也不例外。其中,$("#ID")用来代替document.getElementById()函数,及同过ID来获取元素;$("tagName")用来代替
            2.支持CSS1到CSS3的选择器:jQuery jQuery选择器CSS1、CSS2的全部和CSS 3的部分选择器,同时它也有少量的独有的选择器,使用css选择器时,开发人员需考虑主流选择器是否支持某些选择器,而在JQuery中。开发人员则可以放心使用JQuery选择器而无需考虑浏览器是否支持这些浏览器。
     注释:为了能有更快的选择器解析速度,从1.1.3.1版后,JQuery废弃了不常使用的XPath选择器。但在引用相关的插件后,依然可以使用XPath选择器.
            3.完善的处理机制:使用JQuery选择器不仅比使用传统的getElementById()和getElementByTagName()函数 简洁。而且还避免了某些错误.
       (5)jQuery选择器分为:基本选择器、层次选择器、过滤选择器和表单选择器。

               ---基本选择器        

          1.基本选择器:基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素Id、class和标签名等来查找DOM元素。并且在网页中,id只能使用一次,class允许重复使用。   

          

           2.基本选择器说明:        

            选择器                                     描述                             返回                         示例  

            #id            根据给定的id匹配一个元素          单个元素                 $("#test")选取id为test的元素      

            .class         根据给定的类名匹配元素            集合元素                 $(".test")选取所有class为test的元素
             element        根据给定的元素匹配元素            集合元素                 $("p")选取所有的<p>元素
              *                  匹配所有元素                       集合元素                 $("*")选取所有的元素

            Selector1,     将每一个选择器
                  selector2,     匹配到的元素合并后一起返回        集合元素               $("div,span,p,myClass") 

              ……,                                                                          选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素
                         selectorN

        ----层次选择器
                1.什么是层次选择器:通过DOM元素之间的层次关系来获取特定的元素.例如后代元素、子元素、相邻元素和兄弟元素等。
            2.层次选择器的介绍说明:

              选择器                                 描述                             返回                       示例 

            $("ancestor descendant")        选取ancestor元素里的所有         集合元素                 $("div span")选取div里所有的<span>元素
                               descendant(后代)元素

              $("parent>child")               选取parent元素下的child元素,    集合元素                 $("div>span")选择<div>
                                                      与$("ancestor descendant")                                元素下元素名是<span>的子元素
                                                      有区别,$("ancestor descendant")
                                                      选择的是后代元素

              $("prev+next")                   选取紧接在prev元素后的next元素   集合元素                 $(".one+div")选取class为one的下一个<div>元素

                         $("prev~siblings")               选取prev元素之后的sibling元素    集合元素                 $("#two~div")选取id为two的元素后面的所有<div>元素

      

           3.选择器与替代方法  

            选择器                     方法
                      $(".one+div")            $(".one").next("div")
             $("#prev~div")           ("#prev").nextAll("div")

          4.siblings()与$("prev~siblings")
         1.$("#prev~div")选择器只能选择"#prev"元素后面的同辈<div>元素,而siblings()方法与前后位置无关,只要是同辈节点就都能匹配.
         注释:$({"prev ~ siblings")在选取元素时,不包含prev元素,选取prev元素之后的sibling元素,并且不包含本身

          

     -----过滤选择器    

         1.过滤选择器介绍:过滤选择器主要是通过特定的过滤规则来筛选出所选DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。

        2.过滤选择器的分类(根据不同过滤规则)

                基本过滤选择器   

             内容过滤选择器         

                可见性过滤选择器           

                属性过滤选择器           

               子元素过滤选择器         

               表单对象属性过滤选择器

         3.过滤选择器的说明:
              ----基本过滤选择器
                选择器                   描述                   返回                    示例
           :first                 选取第一个元素           单个元素                 $("div:first")选取所有div元素中的第一个div元素
           :last                  选取最后一个元素       单个元素                $("div:last")选取所有div元素中的最后一个div元素

           :not(selector)     去除所有与给定选       集合元素               $("input:not(.myclass)")选取class不是myclass的input元素
                     择器匹配的元素

       :even                  选取所有索引值           集合元素                $("input:even")选取索引值偶数的input元素
                     为偶数的元素,
                    从0开始计数

          :odd                    选取所有索引值            集合元素                 $("input:odd")选取索引值奇数的input元素
                                    为奇数的元素,
                                    从0开始计数

           :eq(index)           选取一个给定               单个元素                 $("input:eq(1)")选取索引值等于1的input元素
                                     索引值=index的元素  

           :gt(index)            选取所有大于给定          集合元素                 $("input:gt(1)")选取索引值大于1的input元素
                                    索引值(index)的元素

            :gt(index)           选取所有大于给定           集合元素                  $("input:gt(1)")选取索引值大于1的input元素
                                     索引值(index)的元素

            :gt(index)           选取所有大于给定            集合元素                 $("input:gt(1)")选取索引值大于1的input元素
                                   索引值(index)的元素

          ----内容过滤选择器
               选择器                     描述                      返回                    示例
          :contains(text)        选取文本内容                集合元素            $("div:contains("我")")选取含有文本"我"的div元素
                                       含有text的元素

          :empty                   选取不包含                     集合元素            $("div:empty")选取不包含子元素(文本)的div元素
                                        子元素或文本
                                         的空元素

          :has(selector)          选取含有选择器              集合元素                $("div:has(p)")选取含有<p>元素的div元素
                                     所匹配的元素的元素

          :has(selector)       选取含有选择器                   集合元素             $("div:has(p)")选取含有<p>元素的div元素
                                   所匹配的元素的元素

         ----可见性过滤选择器
               选择器                     描述                                  返回                    示例 
          :hidden                      得到所有隐藏的元素                集合元素            Div:hidden得到所有隐藏的div
          :visible                         得到所有可见元素                 集合元素            Div:visible得到所有可见的div

        

    ----属性过滤选择器    

            选择器                     描述                                            返回                            示例     

          [attribute]                选取拥有此属性的元素                         集合元素                    $("div[id]")选取拥有属性id的元素

          [attribute=value]       选取属性的值                                  集合元素                     $("div[title=test]")选取属性title等于"test"的div     

                                         为value的元素       

          [attribute!=value]      选取属性的值                                   集合元素                     $("div[title!=test]")选取属性title不等于"test"的div        

                                          不等于value的元素

          [attribute^=value]      选取属性的值                                 集合元素                        $("div[title^=test]")选取属性title以"test"开头的div      

                                           以value^开始的元素

          [attribute$=value]       选取属性的值                                  集合元素                       $("div[title$=test]")选取属性title以"test"结束的div元素  

                                            以value结尾

          [attribute*=value]       选取属性的值                                   集合元素                       $("div[id][title$=test]")选取拥有属性id,       

                                            含有value                                                                          并且属性title含有"test"的div元素

         ----子元素过滤选择器           

           选择器                                                    描述                              返回                                  示例    

          :nth-child                                            匹配其父元素下的               集合元素              在每个ul查找第2个li:      

          (index/even/odd/equation)                  第N个子元素或奇偶元素      

                                                                   $("ul li:nth-child(2)")

                                                                    奇数:nth-child(even)  

                                                                    偶数:nth-child(odd)

          :first-child                                           匹配第一个子元素                集合元素                在每个ul中查找第1个li:             

                                                                                                                                      $("ul li:first-child")

          :last-child                                            匹配最后一个子元素             集合元素                在每个ul中查找最后1个li:            

                                                                                                                                       $("ul li:last-child")

          :only-child                                           如果某个元素是                 集合元素                 在ul中查找是唯一子元素的li:      

                                                                    父元素中唯一的

                                                                    子元素,那将会被匹配

       4.子元素过滤选择器功能:
               1.:nth-child(even)能选取每个父元素下的索引值是偶数的元素。
               2.:nth-chile(odd)能选取每个父元素下的索引值是基数的元素。
               3.:nth-chile(2)能选取每个父元素下的索引值等于2的元素。
               4.:nth-chile(3n)能选取每个父元素下的索引值是3的倍数的元素。(n从0开始)
               5.:nth-chile(3n+1)能选取每个父元素下的索引值足(3n+1)的元素。(n从0开始)

        ----表单对象属性过滤选择器        

              选择器                                 描述                              返回                       示例      

          :enabled                           选取所有可用元素                 集合元素                  $("#form1:enabled")选取      

                                                                                                                      id为form1的表单内的      

                                                                                                                        所有可用元素

          :disabled                           选取所有不可用的元素          集合元素                   $("form1:disabled")选取          

                                               id为form1的表单内的所有             

                                              不可用的元素

          :checked                选取所有被选中的元素       集合元素        $("input:checked")选取所有被

                        (单选框,复选框)                      选中的<input>元素

          :selected            选中所有被选中的选项元素      集合元素        $('' "select:sekected",)选取 

                                                     所有被选中的选项元素

         5. 表单选择器的作用:为了使用户更加灵活的操作表单(及可也通过表单选择器更加方便的获得表单的某个或某类型的元素)
        
         6.表单选择器注意事项
          1: $("#form1 :input")与$("#form1 input")的区别? 
              $("#form1 :input"):获取ID为form1下所有的<input>、<textarea>、<select>和<button>元素
             .$("#form1  input"): 获取ID为from1下所有的input标签
          2:表单中取值
             单标签:以"/>"结尾的标签<button id='btb' value='aaa' />,统一以val()取值,得到的是该标签中value属性的值.
              双标签:成对出现的标签,例如<body></body>,统一以.html()取值,得到的值就是这对标签中的html值.
              表单元素不一定在表单中.

       

        7.jQuery虽然提供了许多实用的选择器,但也可能无法满足各种多变的业务需求,为此jQuery提供了选择器的扩展.  

           1:MoreSelectors for jQuery(这是jQuery的一款插件,用于增加更多的选择器,例如.color可以匹配颜色,:colindex可以表格中的列等等).                   

                                           插件地址http://plugins.jquery.com/project/moreselectors.  

           2:Basic XPath(这个插件可以让用户使用基本的XPath,但由于使用的人不多,且降低了选择器的效率,jQuery取消了默认对XPath的支持,改用插件来实现).  

                                           插件地址http://plugins.jquery.com/project/xpath

        8.其他使用CSS选择器的方法   

         1:除了jQuery提供了强大的选择器支持外,也有一些其他JavaScript脚本也提供了纯粹的CSS选择器的支持。

           (1)Document.getElementsBySelector()  可以通过选择器来获取文档元素       

                  示例:Document.getElementsBySelector("div#main p a.external")  

            (2)CssQuery           

              这是Dean Edwards编写的一款易用CSS选择器查找元素的脚本,支持所有的CSS1,CSS2以及部分CSS3选择器,它支持一些jQuery尚不支持的选择器,     

                  例如:E:link ,E:nth-last-child(n)…….               

                 语法结构如下:Elements=cssQuery(selector [,from ]);

          (3)querySelectorAll()  这是W3C在Selectors API草案中提到的方案,此方法也是用于实现通过CSS选择器来获取元素的。       

                IE8的Beta2中已经率先实现了此方法。相信其他几大浏览器也能很快就能实现此方法。

               jQuery 的作者John Resig 也表示将会利用querySelectorAll这个浏览器原生的方法来重构jQuery选择器,       

                同时增加一些jQuery扩展的选择器,届时jQuery选择器的执行效率将会大大提高.

                                               


     

      

      

  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/ranfang/p/3437647.html
Copyright © 2011-2022 走看看