首頁 > php教程 > PHP开发 > 主體

jQuery選擇器全集詳解

高洛峰
發布: 2016-12-17 16:22:17
原創
1338 人瀏覽過

通俗的講, Selector選擇器就是”一個表示特殊語義的字符串”. 只要把選擇器字符串傳入上面的方法中就能夠選擇不同的Dom對象並且以jQuery包裝集的形式返回.

但是如何將jQuery選擇器分類讓我犯錯. 因為書上的分類和jQuery官方的分類截然不同. 最後我決定以實用為主, 暫時不去了解CSS3選擇器標準, 而按照jQuery官方的分類進行講解.

jQuery的選擇器支援CSS3選擇器標準. 以下是W3C最新的CSS3選擇器標準:

http://www.w3.org/TR/css3-selectors/

標準中的選擇器都可以在jQuery中使用.

jQuery選擇器按照功能主要分為”選擇”和”過濾”. 並且是配合使用的. 可以同時使用組合成一個選擇器字符串. 主要的區別是”過濾”作用的​​選擇器是指定條件從前面匹配的內容中篩選, “過濾”選擇器也可以單獨使用, 表示從全部”*”中篩選. 例如:

$(“:[title]”)

等同於:

$ (“*:[title]”)

而” 選擇”功能的選擇器則不會有預設的範圍, 因為作用是”選擇”而不是”過濾”.

下面的選擇器分類中, 帶有”過濾器”的分類表示是”過濾”選擇器, 否則就是”選擇”功能的選擇器.

jQuery選擇器分為如下幾類:

[說明]
1. 點擊”名稱”會跳轉到此方法的jQuery官方說明文檔.
2.可以在下節中的jQuery選擇器實驗室測試各種選擇器

1. 基礎選擇器Basics

名稱

說明

舉例

#id

根據元素Id選擇

$(“divId”) 選擇ID為divId的元素

element

根據元素的名稱選擇,

$(“a”) 選擇所有元素

.class

$(“a”) 選擇所有元素

.class

根據元素的css類別選擇

$(“.bgRed”) 選擇所用CSS類為bgRed的元素

*

選擇所有元素


$(“*”)選擇頁上所有元素
sel

selectorN

可以將幾個選擇器用”,”分隔開然後再拼成一個選擇器字串.會同時選中這幾個選擇器匹配的內容.

$(“#divId, a, .bgRed” )

[學習建議]: 大家暫時記住基礎選擇器即可, 可以直接跳到下一節”jQuery選擇器實驗室”進行動手練習, 以後再回來慢慢學習全部的選擇器, 或者用到的時候再回來查詢.

2.層次選擇器Hierarchy

名稱

說明

舉例

ancestor descendant

使用」form input」的形式

ancestor descendant

使用」form input」的形式中的所有祖先類型. from, descendant(子孫)為input.

$(“.bgRed div”) 選擇CSS類別為bgRed的元素中的所有

元素.

parent > child

選擇parent 的直接子child. child必須包含在parent中且父類別是parent元素.

$(“.myList>li”) 選擇CSS類別為myList元素中的直接子節點

  • 物件.

    prev + next

    prev和next是兩個同等級的元素. 選取在prev元素後面的next元素.

    $(“#hibiscus+img”)選在id為hibiscus元素後面的img對象.

    prev ~ siblings

    選擇prev後面的根據siblings過濾的元素

    註:siblings 是過濾器

    $(“#someDiv~[title]”)選擇id為someDiv的物件後面所有帶有title屬性的元素

    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);

    });

    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”)

    5.可見性過濾器Visibility Filters

    名稱

    說明

    舉例

    名稱

    的不可見元素

    注:在1.3.2版本中, hidden匹配自身或父類在文檔中不佔用空間的元素.如果使用CSS visibility屬性讓其不顯示但是佔位,則不輸入hidden.

    尋找所有不可見的tr 元素:$(“tr:hidden”)

    :visible

    匹配所有的可見元素

    查找所有可見的tr 元素:$(“tr:visible”)

    6.屬性過濾器Attribute Filters

    名稱

    說明

    舉例

    [attribute]

    匹配包含給定屬性的元素

    ? attribute=value]

    匹配給定的屬性是某個特定值的元素

    查找所有name 屬性是newsletter 的input 元素:

    $(“input[name='newsletter']”).attr(“checked” , true);

    [attribute!=value]

    匹配給定的屬性是不包含某個特定值的元素

    查找所有name 屬性不是newsletter 的input 元素:

    $(“input[name!=' newsletter']”).attr(“checked”, true);

    [attribute^=value]

    匹配給定的屬性是以某些值開始的元素

    $(“input[name^='news ']”)

    [attribute$=value]

    匹配給定的屬性是以某些值結尾的元素

    查找所有name 以'letter' 結尾的input 元素:

    $(“input[name$= 'letter']”)

    [attribute*=value]

    匹配給定的屬性是以包含某些值的元素

    查找所有name 包含'man' 的input 元素:

    $(“input[name* ='man']”)

    [attributeFilter1][attributeFilter2][attributeFilterN]

    複合屬性選擇器,需要同時滿足多個條件時使用。

    找到所有含有id 屬性,並且它的name 屬性是以man 結尾的:

    $(“input[id][name$='man']”)

    7.子元素過濾器Child Filters

    名稱

    說明

    舉例

    :nth-child(index/even/odd/equation)

    符合其父元素下的第N個子或奇偶元素

    ':eq(index)' 只符合一個元素,而這將為每一個父元素匹配子元素。 :nth-child從1開始的,而:eq()是從0算起的!

    可以使用:

    nth-child(even)

    :nth-child(odd)

    :nth-child(3n)
    :nth-child(2)
    :nth-child(3n+1)
    :nth-child(2)
    :nth-child(3n+1)
    :nth-child(2)
    :nth-child(3n+1)

    :nth-child(2)

    :nth-child(3n+1)
    :nth-child( child(3n+2)

    在每個ul 尋找第2 個li:

    $(“ul li:nth-child(2)”)

    :first-child

    匹配第一個子元素


    ' :first' 只匹配一個元素,而此選擇符將為每個父元素匹配一個子元素

    在每個ul 中查找第一個li:

    $(“ul li:first-child”)

    : last-child

    匹配最後一個子元素


    ':last'只匹配一個元素, 而此選擇符將為每個父元素匹配一個子元素

    在每個ul 中查找最後一個li:

    $( 「ul li:last-child」)

    :only-child

    如果某個元素是父元素中唯一的子元素,那將會被匹配


    如果父元素中含有其他元素,那將不會被匹配。

    在ul 中尋找是唯一子元素的li:
    $(“ul li:only-child”)

    8. 表單選擇器Forms

    名稱

    說明

    解釋所有符合

    , textarea, select 和button 元素

    查找所有的input元素:
    $(“:input”)

    :text

    匹配所有的文字方塊

    查找所有文字方塊:
    符合所有的文字方塊

    查找所有文字方塊:

    :password

    匹配所有密碼框

    查找所有密碼框:

    $(“:password”)

    :radio

    匹配所有單選按鈕

    複選框

    查找所有複選框:

    $(“:checkbox”)

    :submit

    匹配所有提交按鈕

    查找所有提交按鈕:

    $(“:submit”)

    匹配所有圖像域

    匹配所有圖像域:

    $(“:image”)

    :reset

    匹配所有重置按鈕

    查找所有重置按鈕:

    $(“:reset”)

    查找所有重置按鈕:

    $(“:reset”)


    :button

    匹配所有按鈕

    查找所有按鈕:

    $(“:button”)

    :file

    匹配所有文件域

    查找所有文件域:

    $(“:3”)

    查找單過濾器.器Form Filters

    名稱

    說明

    解釋

    :enabled

    匹配所有可用元素

    查找所有可用的input元素:put

    $(“input:able)

    匹配所有不可用元素

    查找所有不可用的input元素:
    $(“input:disabled”)

    :checked

    匹配所有選中的被選中元素(複選框、單選框等,不包括select中的option)

    尋找所有選取的複選框元素:
    $(“input:checked”)

    :selected

    符合所有選取的option元素

    找出所有選取的選項元素:
    符合所有選取的option元素

    查找所有選取的選項元素:
    select option:selected”)


    🎜🎜更多jQuery選擇器全集詳解相關文章請關注PHP中文網! 🎜
  • 相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門推薦
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!