亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

jQuery選擇器大全(48個代碼片段+21幅圖演示)

系統 3767 0

選擇器是jQuery最基礎的東西,本文中列舉的選擇器基本上囊括了所有的jQuery選擇器,也許各位通過這篇文章能夠加深對jQuery選擇器的理解,它們本身用法就非常簡單,我更希望的是它能夠提升個人編寫jQuery代碼的效率。本文配合截圖、代碼和簡單的概括對所有jQuery選擇器進行了介紹,也列舉出了一些需要注意和區分的地方。

?


?

本文已經同步至我的個人博客站點: 積累吧 | jQuery選擇器大全(48個代碼片段+21幅圖演示)

一、基本選擇器

1. id選擇器(指定id元素)

id="one" 的元素背景色設置為黑色。(id選擇器返單個元素)

      $(document).ready(
      
        function 
      
      () {
        $(
      
        '#one'
      
      ).css(
      
        'background'
      
      , 
      
        '#000'
      
      );
    });
    

2. class選擇器(遍歷css類元素)

class="cube" 的元素背景色設為黑色

      $(document).ready(
      
        function 
      
      () {
        $(
      
        '.cube'
      
      ).css(
      
        'background'
      
      , 
      
        '#000'
      
      );
    });
    

3. element選擇器(遍歷html元素)

p 元素的文字大小設置為12px

      $(document).ready(
      
        function 
      
      () {
        $(
      
        'p'
      
      ).css(
      
        'font-size'
      
      , 
      
        '12px'
      
      );
    });
    

4. * 選擇器(遍歷所有元素)

      $(document).ready(
      
        function 
      
      () {
        
      
        // 遍歷form下的所有元素,將字體顏色設置為紅色
        
      
      $(
      
        'form *'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
    });
    

5. 并列選擇器

      $(document).ready(
      
        function 
      
      () {
        
      
        // 將p元素和div元素的margin設為0
        
      
      $(
      
        'p, div'
      
      ).css(
      
        'margin'
      
      , 
      
        '0'
      
      );
    });
    


二、 層次選擇器

1. parent > child(直系子元素)

      $(document).ready(
      
        function 
      
      () {
        
      
        // 選取div下的第一代span元素,將字體顏色設為紅色
        
      
      $(
      
        'div > span'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
    });
    

下面的代碼,只有第一個span會變色,第二個span不屬于div的一代子元素,顏色保持不變。

      
        <
      
      
        div
      
      
        >
        <
      
      
        span
      
      
        >
      
      
        123
      
      
        </
      
      
        span
      
      
        >
        <
      
      
        p
      
      
        >
            <
      
      
        span
      
      
        >
      
      456
      
        </
      
      
        span
      
      
        >
        </
      
      
        p
      
      
        >
</
      
      
        div
      
      
        >
      
    

2. prev + next(下一個兄弟元素,等同于next()方法)

      $(document).ready(
      
        function 
      
      () {
    
      
        // 選取class為item的下一個div兄弟元素
    
      
      $(
      
        '.item + div'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
    
      
        // 等價代碼
    //$('.item').next('div').css('color', '#FF0000');

      
      });
    

下面的代碼,只有123和789會變色

      
        <
      
      
        p 
      
      
        class
      
      
        =
      
      
        "item"
      
      
        ></
      
      
        p
      
      
        >
<
      
      
        div
      
      
        >
      
      
        123
      
      
        </
      
      
        div
      
      
        >
<
      
      
        div
      
      
        >
      
      456
      
        </
      
      
        div
      
      
        >
<
      
      
        span 
      
      
        class
      
      
        =
      
      
        "item"
      
      
        ></
      
      
        span
      
      
        >
<
      
      
        div
      
      
        >
      
      
        789
      
      
        </
      
      
        div
      
      
        >

      
    

3. prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)

      $(document).ready(
      
        function 
      
      () {
    
      
        // 選取class為inside之后的所有div兄弟元素
    
      
      $(
      
        '.inside ~ div'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
    
      
        // 等價代碼
    //$('.inside').nextAll('div').css('color', '#FF0000');

      
      });
    

下面的代碼,G2和G4會變色

      
        <
      
      
        div 
      
      
        class
      
      
        =
      
      
        "inside"
      
      
        >
      
      G1
      
        </
      
      
        div
      
      
        >
<
      
      
        div
      
      
        >
      
      
        G2
      
      
        </
      
      
        div
      
      
        >
<
      
      
        span
      
      
        >
      
      G3
      
        </
      
      
        span
      
      
        >
<
      
      
        div
      
      
        >
      
      
        G4
      
      
        </
      
      
        div
      
      
        >

      
    

三、 過濾選擇器

1. 基本過濾選擇器

——1.1? :first :last (取第一個元素或最后一個元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'span:first'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
            $(
      
        'span:last'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
        });
    

下面的代碼,G1(first元素)和G3(last元素)會變色

      
        <
      
      
        span
      
      
        >
      
      
        G1
      
      
        </
      
      
        span
      
      
        >
<
      
      
        span
      
      
        >
      
      G2
      
        </
      
      
        span
      
      
        >
<
      
      
        span
      
      
        >
      
      
        G3
      
      
        </
      
      
        span
      
      
        >

      
    

——1.2? :not (取非元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'div:not(.wrap)'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
        });
    

下面的代碼,G1會變色

      
        <
      
      
        div
      
      
        >
      
      
        G1
      
      
        </
      
      
        div
      
      
        >
<
      
      
        div 
      
      
        class
      
      
        =
      
      
        "wrap"
      
      
        >
      
      G2
      
        </
      
      
        div
      
      
        >

      
    

但是,請注意下面的代碼:

      
        <
      
      
        div
      
      
        >
    
      
      G1
    
      
        <
      
      
        div 
      
      
        class
      
      
        =
      
      
        "wrap"
      
      
        >
      
      G2
      
        </
      
      
        div
      
      
        >
</
      
      
        div
      
      
        >

      
    

當G1所在div和G2所在div是父子關系時,G1和G2都會變色。

——1.3? :even :odd (取偶數索引或奇數索引元素,索引從0開始,even表示偶數,odd表示奇數)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'tr:even'
      
      ).css(
      
        'background'
      
      , 
      
        '#EEE'
      
      ); 
      
        // 偶數行顏色
            
      
      $(
      
        'tr:odd'
      
      ).css(
      
        'background'
      
      , 
      
        '#DADADA'
      
      ); 
      
        // 奇數行顏色
        
      
      });
    

A、C行顏色#EEE(第一行的索引為0),B、D行顏色#DADADA

image

      
        <
      
      
        table 
      
      
        width
      
      
        =
      
      
        "200" 
      
      
        cellpadding
      
      
        =
      
      
        "0" 
      
      
        cellspacing
      
      
        =
      
      
        "0"
      
      
        >
    <
      
      
        tbody
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      A
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      B
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      C
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      D
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
    </
      
      
        tbody
      
      
        >
</
      
      
        table
      
      
        >

      
    

——1.4? :eq(x) ?(取指定索引的元素)

image

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'tr:eq(2)'
      
      ).css(
      
        'background'
      
      , 
      
        '#FF0000'
      
      );
        });
    

更改第三行的背景色,在上面的代碼中C的背景會變色。

——1.5? :gt(x) :lt(x) (取大于x索引或小于x索引的元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'ul li:gt(2)'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
            $(
      
        'ul li:lt(2)'
      
      ).css(
      
        'color'
      
      , 
      
        '#0000FF'
      
      );
        });
    

L4和L5會是紅色,L1和L2會是藍色,L3是默認顏色

image

      
        <
      
      
        ul
      
      
        >
    <
      
      
        li
      
      
        >
      
      L1
      
        </
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      L2
      
        </
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      L3
      
        </
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      L4
      
        </
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      L5
      
        </
      
      
        li
      
      
        >
</
      
      
        ul
      
      
        >

      
    

——1.6? :header (取H1~H6標題元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        ':header'
      
      ).css(
      
        'background'
      
      , 
      
        '#EFEFEF'
      
      );
        });
    

下面的代碼,H1~H6的背景色都會變

image

      
        <
      
      
        h1
      
      
        >
      
      H1
      
        </
      
      
        h1
      
      
        >
<
      
      
        h2
      
      
        >
      
      H2
      
        </
      
      
        h2
      
      
        >
<
      
      
        h3
      
      
        >
      
      H3
      
        </
      
      
        h3
      
      
        >
<
      
      
        h4
      
      
        >
      
      H4
      
        </
      
      
        h4
      
      
        >
<
      
      
        h5
      
      
        >
      
      H5
      
        </
      
      
        h5
      
      
        >
<
      
      
        h6
      
      
        >
      
      H6
      
        </
      
      
        h6
      
      
        >

      
    

2. 內容過濾選擇器

——2.1 ?:contains(text) (取包含text文本的元素)

      $(document).ready(
      
        function 
      
      () {
            
      
        // dd元素中包含"jQuery"文本的會變色
            
      
      $(
      
        'dd:contains("jQuery")'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF0000'
      
      );
        });
    

下面的代碼,第一個dd會變色

image

      
        <
      
      
        dl
      
      
        >
    <
      
      
        dt
      
      
        >
      
      技術
      
        </
      
      
        dt
      
      
        >
    <
      
      
        dd
      
      
        >
      
      jQuery, .NET, CLR
      
        </
      
      
        dd
      
      
        >
    <
      
      
        dt
      
      
        >
      
      SEO
      
        </
      
      
        dt
      
      
        >
    <
      
      
        dd
      
      
        >
      
      關鍵字排名
      
        </
      
      
        dd
      
      
        >
    <
      
      
        dt
      
      
        >
      
      其他
      
        </
      
      
        dt
      
      
        >
    <
      
      
        dd
      
      
        ></
      
      
        dd
      
      
        >
</
      
      
        dl
      
      
        >

      
    

——2.2? :empty (取不包含子元素或文本為空的元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'dd:empty'
      
      ).html(
      
        '沒有內容'
      
      );
});
    

image

上面第三個dd會顯示"沒有內容"文本

——2.3? :has(selector)( 取選擇器匹配的元素)

      $(document).ready(
      
        function 
      
      () {
            
      
        // 為包含span元素的div添加邊框
            
      
      $(
      
        'div:has(span)'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #000'
      
      );
        });
    

即使span不是div的直系子元素,也會生效

image

      
        <
      
      
        div
      
      
        >
    <
      
      
        h2
      
      
        >
        
      
      A
        
      
        <
      
      
        span
      
      
        >
      
      B
      
        </
      
      
        span
      
      
        >
    </
      
      
        h2
      
      
        >
</
      
      
        div
      
      
        >
      
    

——2.4? :parent (取包含子元素或文本的元素)

      $(document).ready(
      
        function 
      
      () {
            $(
      
        'ol li:parent'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #000'
      
      );
        });
    

下面的代碼,A和D所在的li會有邊框

image

      
        <
      
      
        ol
      
      
        >
    <
      
      
        li
      
      
        ></
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      A
      
        </
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        ></
      
      
        li
      
      
        >
    <
      
      
        li
      
      
        >
      
      D
      
        </
      
      
        li
      
      
        >
</
      
      
        ol
      
      
        >

      
    

3. 可見性過濾選擇器

——3.1? :hidden (取不可見的元素)

jQuery至1.3.2之后的:hidden選擇器僅匹配display:none或<input type="hidden" />的元素,而不匹配visibility: hidden或opacity:0的元素。這也意味著hidden只匹配那些“隱藏的”并且不占空間的元素,像visibility:hidden或opactity:0的元素占據了空間,會被排除在外。

參照: http://www.jquerysdk.com/api/hidden-selector

下面的代碼,先彈出"hello"對話框,然后hid-1會顯示,hid-2仍然是不可見的。

image

      
        <
      
      
        html 
      
      
        xmlns
      
      
        ="http://www.w3.org/1999/xhtml" >
<
      
      
        head 
      
      
        runat
      
      
        ="server">
    <
      
      
        title
      
      
        ></
      
      
        title
      
      
        >
    <
      
      
        style 
      
      
        type
      
      
        ="text/css">
        
      
      
        div
        
      
      {
            
      
        margin
      
      : 
      
        10px
      
      ;
            
      
        width
      
      : 
      
        200px
      
      ;
            
      
        height
      
      : 
      
        40px
      
      ;
            
      
        border
      
      : 
      
        1px solid #FF0000
      
      ;
            
      
        display
      
      :
      
        block
      
      ;
        }
        
      
        .hid-1
        
      
      {
            
      
        display
      
      : 
      
        none
      
      ;
        }
        
      
        .hid-2
        
      
      {
            
      
        visibility
      
      : 
      
        hidden
      
      ;
        }
    
      
        </
      
      
        style
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript" 
      
      
        src
      
      
        ="js/jquery.min.js"></
      
      
        script
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            $(
      
        'div:hidden'
      
      ).show(500);
            alert($(
      
        'input:hidden'
      
      ).val());
        });
    
      
        </
      
      
        script
      
      
        >
</
      
      
        head
      
      
        >
<
      
      
        body
      
      
        >
    <
      
      
        div 
      
      
        class
      
      
        ="hid-1">
      
      display: none
      
        </
      
      
        div
      
      
        >
    <
      
      
        div 
      
      
        class
      
      
        ="hid-2">
      
      visibility: hidden
      
        </
      
      
        div
      
      
        >
    <
      
      
        input 
      
      
        type
      
      
        ="hidden" 
      
      
        value
      
      
        ="hello"/>
</
      
      
        body
      
      
        >
</
      
      
        html
      
      
        >
      
    

——3.2? :visible (取可見的元素)

下面的代碼,最后一個div會有背景色

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        'div:visible'
      
      ).css(
      
        'background'
      
      , 
      
        '#EEADBB'
      
      );
    });

      
        </
      
      
        script
      
      
        >
<
      
      
        div 
      
      
        class
      
      
        ="hid-1">
      
      display: none
      
        </
      
      
        div
      
      
        >
<
      
      
        div 
      
      
        class
      
      
        ="hid-2">
      
      visibility: hidden
      
        </
      
      
        div
      
      
        >
<
      
      
        input 
      
      
        type
      
      
        ="hidden" 
      
      
        value
      
      
        ="hello"/>
<
      
      
        div
      
      
        >
    
      
      jQuery選擇器大全

      
        </
      
      
        div
      
      
        >
      
    

4. 屬性過濾選擇器

——4.1? [attribute] (取擁有attribute屬性的元素)

下面的代碼,最后一個a標簽沒有title屬性,所以它仍然會帶下劃線

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            $(
      
        'a[title]'
      
      ).css(
      
        'text-decoration'
      
      , 
      
        'none'
      
      );
       });
    
      
        </
      
      
        script
      
      
        >       
    <
      
      
        ul
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        title
      
      
        ="DOM對象和jQuery對象" 
      
      
        class
      
      
        ="item">
      
      DOM對象和jQuery對象
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        title
      
      
        ="jQuery選擇器大全" 
      
      
        class
      
      
        ="item-selected">
      
      jQuery選擇器大全
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        title
      
      
        ="jQuery事件大全" 
      
      
        class
      
      
        ="item">
      
      jQuery事件大全
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        title
      
      
        ="基于jQuery的插件開發" 
      
      
        class
      
      
        ="item">
      
      基于jQuery的插件開發
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        title
      
      
        ="Wordpress & jQuery" 
      
      
        class
      
      
        ="item">
      
      Wordpress & jQuery
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
        <
      
      
        li
      
      
        ><
      
      
        a 
      
      
        href
      
      
        ="#" 
      
      
        class
      
      
        ="item">
      
      其他
      
        </
      
      
        a
      
      
        ></
      
      
        li
      
      
        >
    </
      
      
        ul
      
      
        >
      
    

——4.2? [attribute = value] [attribute != value] (取attribute屬性值等于value或不等于value的元素)

分別為class="item"和class!=item的a標簽指定文字顏色

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
       
      
      $(document).ready(
      
        function
      
      () {
           $(
      
        'a[class=item]'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF99CC'
      
      );
           $(
      
        'a[class!=item]'
      
      ).css(
      
        'color'
      
      , 
      
        '#FF6600'
      
      );
       });

      
        </
      
      
        script
      
      
        >  
      
    

——4.3? [attribute ^= value] , [ attribute $= value] [attribute *= value] (attribute屬性值以value開始,以value結束,或包含value值)

在屬性選擇器中,^$符號和正則表達式的開始結束符號表示的含義是一致的,*模糊匹配,類似于sql中的like '%str%'。

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      
        // 識別大小寫,輸入字符串時可以輸入引號,[title^=jQuery]和[title^="jQuery"]是一樣的
    
      
      $(
      
        'a[title^=jQuery]'
      
      ).css(
      
        'font-weight'
      
      , 
      
        'bold'
      
      );
    $(
      
        'a[title$=jQuery]'
      
      ).css(
      
        'font-size'
      
      , 
      
        '24px'
      
      );
    $(
      
        'a[title*=jQuery]'
      
      ).css(
      
        'text-decoration'
      
      , 
      
        'line-through'
      
      );

      
        </
      
      
        script
      
      
        >
      
    

——4.4? [selector1][selector2] (復合型屬性過濾器,同時滿足多個條件)

將title以"jQuery"開始,并且class="item"的a標簽隱藏,那么 < a? href ="#"? title ="jQuery事件大全" class ="item"> jQuery事件大全 </ a > 會被隱藏

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            $(
      
        'a[title^=jQuery][class=item]'
      
      ).hide();
        });
    
      
        </
      
      
        script
      
      
        >  
      
    

5. 子元素過濾選擇器

——5.1? :first-child :last-child

:first-child表示第一個子元素,:last-child表示最后一個子元素。

需要大家注意的是,:fisrst和:last返回的都是單個元素,而:first-child和:last-child返回的都是集合元素。舉個例子:div:first返回的是整個DOM文檔中第一個div元素,而div:first-child是返回所有div元素下的第一個元素合并后的集合。

這里有個問題:如果一個元素沒有子元素,:first-child和:last-child會返回null嗎?請看下面的代碼:

      
        <
      
      
        html 
      
      
        xmlns
      
      
        ="http://www.w3.org/1999/xhtml" >
<
      
      
        head 
      
      
        runat
      
      
        ="server">
    <
      
      
        title
      
      
        ></
      
      
        title
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript" 
      
      
        src
      
      
        ="js/jquery.min.js"></
      
      
        script
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        
      
        var 
      
      len1 = $(
      
        'div:first-child'
      
      ).length;
        
      
        var 
      
      len2 = $(
      
        'div:last-child'
      
      ).length;
     });
    
      
        </
      
      
        script
      
      
        >
</
      
      
        head
      
      
        >
<
      
      
        body
      
      
        >
<
      
      
        div
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        div
      
      
        ></
      
      
        div
      
      
        >
    </
      
      
        div
      
      
        >
</
      
      
        div
      
      
        >
</
      
      
        body
      
      
        >
</
      
      
        html
      
      
        >
      
    
也許你覺得這個答案,是不是太簡單了?len1 = 2, len2 = 2。但實際確并不是,它們倆都等于3。?
把上面的代碼稍微修改一下:
      
        <
      
      
        html 
      
      
        xmlns
      
      
        ="http://www.w3.org/1999/xhtml" >
<
      
      
        head 
      
      
        runat
      
      
        ="server">
    <
      
      
        title
      
      
        ></
      
      
        title
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript" 
      
      
        src
      
      
        ="js/jquery.min.js"></
      
      
        script
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        
      
        var 
      
      len1 = $(
      
        'div:first-child'
      
      ).length;
        
      
        var 
      
      len2 = $(
      
        'div:last-child'
      
      ).length;
        $(
      
        'div:first-child'
      
      ).each(
      
        function
      
      () {
            alert($(
      
        this
      
      ).html());
        });
     });
    
      
        </
      
      
        script
      
      
        >
</
      
      
        head
      
      
        >
<
      
      
        body
      
      
        >
<
      
      
        div
      
      
        >
      
      123
    
      
        <
      
      
        div
      
      
        >
      
      456
        
      
        <
      
      
        div
      
      
        ></
      
      
        div
      
      
        >
    </
      
      
        div
      
      
        >
</
      
      
        div
      
      
        >
</
      
      
        body
      
      
        >
</
      
      
        html
      
      
        >

      
    

結果卻是彈出三個alert,只不過最后一個alert里面是空白的。

image

——5.2? :only-child

當某個元素有且僅有一個子元素時,:only-child才會生效。

      
        <
      
      
        html 
      
      
        xmlns
      
      
        ="http://www.w3.org/1999/xhtml" >
<
      
      
        head 
      
      
        runat
      
      
        ="server">
    <
      
      
        title
      
      
        ></
      
      
        title
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript" 
      
      
        src
      
      
        ="js/jquery.min.js"></
      
      
        script
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            $(
      
        'div:only-child'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #FF0000'
      
      ).css(
      
        'width'
      
      ,
      
        '200px'
      
      );
        });
    
      
        </
      
      
        script
      
      
        >
</
      
      
        head
      
      
        >
<
      
      
        body
      
      
        >
<
      
      
        div
      
      
        >
      
      123
    
      
        <
      
      
        div
      
      
        >
      
      456
        
      
        <
      
      
        div
      
      
        ></
      
      
        div
      
      
        >
    </
      
      
        div
      
      
        >
</
      
      
        div
      
      
        >
</
      
      
        body
      
      
        >
</
      
      
        html
      
      
        >
      
    

這里:only-child也是三個元素,從最后一個很粗的紅色邊框(實際是兩個元素的邊框重疊了)也可以看出來。

image

——5.3? :nth-child

看到這個就想起英文單詞里的,fourth, fifth, sixth……,nth表示第n個,:nth-child就表示第n個child元素。要注意的是,這兒的n不像eq(x)、gt(x)或lt(x)是從0開始的,它是從1開始的,英文里好像也沒有zeroth這樣的序號詞吧。

:nth-child有三種用法:

1) :nth-child(x),獲取第x個子元素?
2) :nth-child(even)和:nth-child(odd),從1開始,獲取第偶數個元素或第奇數個元素?
3) :nth-child(xn+y),x>=0,y>=0。例如x = 3, y = 0時就是3n,表示取第3n個元素(n>=0)。實際上xn+y是上面兩種的通項式。(當x=0,y>=0時,等同于:hth-child(x);當x=2,y=0時,等同于nth-child(even);當x=2,y=1時,等同于:nth-child(odd))

下面的兩個例子是針對2)和3)的,1)的例子我就不列舉了。

例2:

image

      
        <
      
      
        html 
      
      
        xmlns
      
      
        ="http://www.w3.org/1999/xhtml" >
<
      
      
        head 
      
      
        runat
      
      
        ="server">
    <
      
      
        title
      
      
        ></
      
      
        title
      
      
        >
    <
      
      
        style 
      
      
        type
      
      
        ="text/css">
        
        
      
      
        td 
      
      {
            
      
        width
      
      : 
      
        200px
      
      ;
            
      
        height
      
      : 
      
        32px
      
      ;
            
      
        line-height
      
      : 
      
        32px
      
      ;
        }
        
    
      
        </
      
      
        style
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript" 
      
      
        src
      
      
        ="js/jquery.min.js"></
      
      
        script
      
      
        >
    <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            
      
        // 偶數行背景紅色
            
      
      $(
      
        'tr:nth-child(even)'
      
      ).css(
      
        'background'
      
      , 
      
        '#FF0000'
      
      );
            
      
        // 奇數行背景藍色
            
      
      $(
      
        'tr:nth-child(odd)'
      
      ).css(
      
        'background'
      
      , 
      
        '#0000FF'
      
      );
        });
    
      
        </
      
      
        script
      
      
        >
</
      
      
        head
      
      
        >
<
      
      
        body
      
      
        >
    <
      
      
        table
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      1. NBA 2012季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      2. NBA 2011季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      3. NBA 2010季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      4. NBA 2009季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      5. NBA 2008季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
        <
      
      
        tr
      
      
        ><
      
      
        td
      
      
        >
      
      6. NBA 2007季后賽
      
        </
      
      
        td
      
      
        ></
      
      
        tr
      
      
        >
    </
      
      
        table
      
      
        >
</
      
      
        body
      
      
        >
</
      
      
        html
      
      
        >
      
    

例3(html代碼和例2是一樣的):

SNAGHTMLd6d414

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        'tr:nth-child(3n)'
      
      ).css(
      
        'background'
      
      , 
      
        '#0000FF'
      
      );
    });

      
        </
      
      
        script
      
      
        >
      
    

6. 表單對象屬性過濾選擇器

——6.1? :enabled和:disabled (取可用或不可用元素)

:enabled和:diabled的匹配范圍包括input, select, textarea。

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
        
      
      $(document).ready(
      
        function
      
      () {
            $(
      
        ':enabled'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #FF0000'
      
      );
            $(
      
        ':disabled'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #0000FF'
      
      );
        });
    
      
        </
      
      
        script
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        input 
      
      
        type
      
      
        ="text" 
      
      
        value
      
      
        ="可用的文本框" />
    </
      
      
        div
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        input 
      
      
        type
      
      
        ="text" 
      
      
        disabled
      
      
        ="disabled" 
      
      
        value
      
      
        ="不可用的文本框" />
    </
      
      
        div
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        textarea 
      
      
        disabled
      
      
        ="disabled">
      
      不可用的文本域
      
        </
      
      
        textarea
      
      
        >
    </
      
      
        div
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        select 
      
      
        disabled
      
      
        ="disabled">
            <
      
      
        option
      
      
        >
      
      English
      
        </
      
      
        option
      
      
        >
            <
      
      
        option
      
      
        >
      
      簡體中文
      
        </
      
      
        option
      
      
        >
        </
      
      
        select
      
      
        >
    </
      
      
        div
      
      
        >
      
    

——6.2? :checked (取選中的單選框或復選框元素)

下面的代碼,更改邊框或背景色僅在IE下有效果,chrome和firefox不會改變,但是alert都會彈出來。

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        ':checked'
      
      ).css(
      
        'background'
      
      , 
      
        '#FF0000'
      
      ).each(
      
        function
      
      () {
            alert($(
      
        this
      
      ).val());
        });
    });

      
        </
      
      
        script
      
      
        >
<
      
      
        div
      
      
        >
    <
      
      
        input 
      
      
        type
      
      
        ="checkbox" 
      
      
        checked
      
      
        ="checked" 
      
      
        value
      
      
        ="must"/>
      
      必須勾選

      
        </
      
      
        div
      
      
        >
<
      
      
        div
      
      
        >

      
      你現在工作的企業屬于:
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        checked
      
      
        ="checked" 
      
      
        value
      
      
        ="外企"/>
      
      外企
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        value
      
      
        ="國企"/>
      
      國企
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        value
      
      
        ="民企"/>
      
      民企

      
        </
      
      
        div
      
      
        >
      
    

——6.3? :selected (取下拉列表被選中的元素)

SNAGHTML14414ae

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        alert($(
      
        ':selected'
      
      ).val());
    });

      
        </
      
      
        script
      
      
        >
<
      
      
        select
      
      
        >
    <
      
      
        option 
      
      
        value
      
      
        ="外企">
      
      外企
      
        </
      
      
        option
      
      
        >
    <
      
      
        option 
      
      
        value
      
      
        ="國企">
      
      國企
      
        </
      
      
        option
      
      
        >
    <
      
      
        option 
      
      
        value
      
      
        ="私企">
      
      私企
      
        </
      
      
        option
      
      
        >
</
      
      
        select
      
      
        >
      
    

四、表單選擇器

1.? :input (取input,textarea,select,button元素)

:input元素這里就不再多說了,前面的一些例子中也已經囊括了。

2.? :text (取單行文本框元素)和:password(取密碼框元素)

這兩個選擇器分別和屬性選擇器 $('input[type=text]') $('input[type=password]') 等同。

image

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
   
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        ':text'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #FF0000'
      
      );
        $(
      
        ':password'
      
      ).css(
      
        'border'
      
      , 
      
        '1px solid #0000FF'
      
      );

        
      
        // 等效代碼
        //$('input[type=text]').css('border', '1px solid #FF0000');
        //$('input[type=password]').css('border', '1px solid #0000FF');
   
      
      });

      
        </
      
      
        script
      
      
        >
<
      
      
        fieldset 
      
      
        style
      
      
        ="
      
      
        width
      
      : 
      
        300px
      
      ;
      
        ">
    <
      
      
        legend
      
      
        >
      
      賬戶登錄
      
        </
      
      
        legend
      
      
        >
     <
      
      
        div
      
      
        >
        <
      
      
        label
      
      
        >
      
      用戶名:
      
        </
      
      
        label
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="text"/>
    </
      
      
        div
      
      
        >
    <
      
      
        div
      
      
        >
        <
      
      
        label
      
      
        >
      
        &nbsp;&nbsp;
      
      碼:
      
        </
      
      
        label
      
      
        ><
      
      
        input 
      
      
        type
      
      
        ="password"/>
    </
      
      
        div
      
      
        >
</
      
      
        fieldset
      
      
        >
      
    

3.? :radio (取單選框元素)

:radio選擇器和屬性選擇器 $('input[type=radio]') 等同

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        ':radio'
      
      ).each(
      
        function
      
      () {
            alert($(
      
        this
      
      ).val());
        });
        
      
        // 等效代碼
        /*
        $('input[type=radio]').each(function() {
            alert($(this).val());
        });
        */
    
      
      });

      
        </
      
      
        script
      
      
        >


      
      你現在工作的企業屬于:
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        checked
      
      
        ="checked" 
      
      
        value
      
      
        ="外企"/>
      
      外企
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        value
      
      
        ="國企"/>
      
      國企
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="radio" 
      
      
        name
      
      
        ="radio" 
      
      
        value
      
      
        ="民企"/>
      
      民企
    

4.? :checkbox (取復選框元素)

:checkbox選擇器和屬性選擇器 $('input[type=checkbox]') 等同

      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript">
    
      
      $(document).ready(
      
        function
      
      () {
        $(
      
        ':checkbox'
      
      ).each(
      
        function
      
      () {
            alert($(
      
        this
      
      ).val());
        });
        
      
        // 等效代碼
        /*
        $('input[type=checkbox]').each(function() {
            alert($(this).val());
        });
        */
    
      
      });

      
        </
      
      
        script
      
      
        >
    
      
      您的興趣愛好:
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="checkbox" />
      
      游泳
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="checkbox" />
      
      看書
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="checkbox" 
      
      
        checked
      
      
        ="checked" 
      
      
        value
      
      
        ="打籃球"/>
      
      打籃球
    
      
        <
      
      
        input 
      
      
        type
      
      
        ="checkbox" 
      
      
        checked
      
      
        ="checked" 
      
      
        value
      
      
        ="電腦游戲"/>
      
      電腦游戲
    

上面的代碼,會將所有額checkbox的value輸出出來。若你想選擇選中項,有三種寫法:

      $(
      
        ':checkbox:checked'
      
      ).each(
      
        function
      
      () {
    alert($(
      
        this
      
      ).val());
});

$(
      
        'input[type=checkbox][checked]'
      
      ).each(
      
        function
      
      () {
    alert($(
      
        this
      
      ).val());
});

$(
      
        ':checked'
      
      ).each(
      
        function
      
      () {
    alert($(
      
        this
      
      ).val());
});
    

5.? :submit (取提交按鈕元素)

:submit選擇器和屬性選擇器 $('input[type=submit]') 等同

6.? :reset (取重置按鈕元素)

:reset選擇器和屬性選擇器 $('input[type=reset]') 等同

7.? :button (取按鈕元素)

:button選擇器和屬性選擇器 $('input[type=button]') 等同

8.? :file (取上傳域元素)

:file選擇器和屬性選擇器 $('input[type=file]') 等同

9.? :hidden (取不可見元素)

:hidden選擇器和屬性選擇器 $('input[type=hidden]') 等同

表單選擇器的6~10例子我就不再列舉了,和1~5的很類似,大家可以自己嘗試一下。

jQuery選擇器大全(48個代碼片段+21幅圖演示)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲一级在线 | 精品久久免费观看 | 奇米在线观看视频 | 久久99精品久久久久子伦小说 | 日日摸日日碰夜夜97 | 91夜夜操| 免费香蕉一区二区在线观看 | 欧美日韩精品一区二区三区四区 | 九九影视理论片在线播放 | 亚洲一区二区中文字幕 | 久久久精品久久视频只有精品 | 亚洲午夜视频 | 日韩视频中文字幕 | 中文字幕福利视频 | 伊人色综合久久天天爱 | 亚洲精品成人a在线观看 | 久久久久久a亚洲欧洲aⅴ | 四虎地址8848jia | 看黄色一级毛片 | 人人鲁免费播放视频人人香蕉 | 久久毛片免费看一区二区三区 | 看免费的毛片 | 久久免费小视频 | 青青草免费视频在线播放 | 欧美亚洲国产一区二区三区 | 九九看片| 四虎影视免费永久在线观看黄 | 亚洲日韩中文字幕 | 日韩中文精品亚洲第三区 | 亚洲在线观看 | 国产97色在线 | 亚洲 | 国产精品www视频免费看 | 亚洲精品国产福利在线观看 | 日韩经典欧美一区二区三区 | 免费看色片网站 | 精品视频在线观看一区二区三区 | 成年午夜性视频免费播放 | 精品视频入口 | 国产精品久久九九 | 亚洲国产综合网 | 天天天天|