• 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选择器的执行效率将会大大提高.

                                               


     

      

      

  • 相关阅读:
    点击Notification之后收起通知栏
    Visual Studio常用的快捷键
    数据库语法二之外键
    数据引擎 创建表完整语法,字段类型,约束条件
    数据库 tcp协程实现并发 回调函数
    GIL以及协程
    进程,互斥锁,生产者消费者,线程
    udp协议,进程(同步,异步)
    单例模式,网络编程之tcp协议以及粘包问题
    网络编程
  • 原文地址:https://www.cnblogs.com/ranfang/p/3437647.html
Copyright © 2020-2023  润新知