jQuery的選擇器

$(document).ready(function(){});

$(document(){});簡寫

//jQuery等待加載 只需等待網(wǎng)頁中的DOM結(jié)構(gòu)加載完畢,才能執(zhí)行包裹的代碼,效率更高

window.onload = function(){};? //javaScript等待加載,必須等待網(wǎng)頁加載完畢(包括圖片)才能執(zhí)行的包裹代碼

一、基本選擇器

1.ID選擇器

使用公式: $("#id")

使用示例: $("#box")? //獲取id屬性為box的元素

介紹:ID選擇器#id就是利用DOM元素的id屬性值來篩選匹配的元素,并以iQuery包裝集的形式返回給對(duì)象。

2.元素選擇器

使用公式:$("element")

使用示例:$(“div”) //獲取所有的元素

介紹:元素選擇器是根據(jù)元素名稱匹配相應(yīng)的元素。元素選擇器指向的是DOM元素的標(biāo)記名,也就是說元素選擇器是根據(jù)元素的標(biāo)記名選擇的。

3.類名選擇器

使用公式:$(".class")

使用示例:$(".box") //獲取class屬性值為box的所有元素

介紹:類選擇器是通過元素?fù)碛械腃SS類的名稱查找匹配的DOM元素。在一個(gè)頁面中,一個(gè)元素可以有多個(gè)CSS類,一個(gè)CSS類又可以匹配多個(gè)元素,如果有元素中有一個(gè)匹配類的名稱就可以被類選擇器選取到。簡單地說類名選擇器就是以元素具有的CSS類名稱查找匹配的元素。

4.復(fù)合選擇器

使用公式:$("selector1,selector2,......,selectorN")

使用示例:$("div,#btn")? ? //要查詢文檔中的全部的<div>元素和id屬性為btn的元素

selector1:一個(gè)有效的選擇器,可以是ID選擇器、元素選擇器或類名選擇器等

selector2:另一個(gè)有效的選擇器,可以是ID選擇器、元素選擇器或類名選擇器等

selectorN:(可選擇)任意多個(gè)選擇器,可以是ID選擇器、元素選擇器或類名選擇器等

介紹: 復(fù)合選擇器將多個(gè)選擇器(可以是ID選擇器、元素選擇器或是類名選擇器)組合在一起,兩個(gè)選擇器之間以逗號(hào)","分隔,只要符合其中的任何一個(gè)篩選條件就會(huì)被匹配,返回的是一個(gè)集合形式的jQuery包裝集,利用jQuery索引器可以取得集合中的jQuery對(duì)象。

注意:多種匹配條件的選擇器并不是匹配同時(shí)滿足這幾個(gè)選擇器的匹配條件的元素,而是將每個(gè)匹配的元素合并后一起返回。

5.通配符選擇器

? $(" * ") //取得頁面上所有的DOM元素集合的jQuery包裝集

二、層次選擇器

1.ancestor descendant選擇器

使用公式:$("ancestor descendant")

使用示例:$(" ul li") //匹配ul元素下的全部li元素

ancestor是指任何有效的選擇器。

descendant是用以匹配元素的選擇器,并且ancestor所指定元素后代元素。

ancestor descendant選擇器中ancestor代表祖先,descendant代表子孫,用于在給定的祖先元素下匹配所有的后代元素

2.parent>child選擇器

?使用公式:$(" parent>child")

?使用示例:$(" form>input") //匹配表單中所有的子元素input

?parent是指任何有效的選擇器

?child使用以匹配元素的選擇器,并且它是parent元素的子元素

? 介紹:parent>child選擇器中的parent代表父元素,child代表子元素,用于在給定的父元素下匹配所有的子元素,使用該選擇器只能選擇器父元素的子元素

3.prev+next選擇器

使用公式:$(" prev+next")

使用示例:$("div+img") // 匹配<div>標(biāo)簽后的<img>標(biāo)記

prev是指任何有效的選擇器

next是一個(gè)有效選擇器并緊接著prev選擇器

介紹:pev+next選擇器用于匹配所有緊接在prev元素后的next元素,其中,prev和next是兩個(gè)相同級(jí)別的元素


4.prev~siblings選擇器

使用公式:$("prev~siblings")

prev是指任何有效的選擇器

介紹:prev~siblings選擇器用于匹配prev元素之后的所有siblings元素,其中prev和siblings是個(gè)相同輩元素


三、過濾選擇器

1.簡單過濾器

簡單過濾器是指冒號(hào)開頭的,通常用于實(shí)現(xiàn)簡單過濾效果的過濾器

:frist

? ? ? ? ? ?說明:匹配找到第一個(gè)元素,它是與選擇器結(jié)合使用的

? ? ? ? ? ? 示例:$(" tr:frist ") ?//匹配表格的第一行

:last

????????????說明:匹配找到最后一個(gè)元素,它是與選擇器結(jié)合使用的

? ? ? ? ? ? 示例:$(" tr:last ") ?//匹配表格的最后一行

:even

? ? ? ? ? ? 說明:匹配所有索引值為偶數(shù)的元素,索引值從0開始計(jì)算

? ? ? ? ? ?示例:$(" tr:even") ?//匹配索引為偶數(shù)一行

:odd

? ? ? ? ? ? ? 說明:匹配所有索引值為奇數(shù)的元素,索引值從0開始計(jì)數(shù)

? ? ? ? ? ? ? 示例:$("tr:odd") ? ? ? //匹配索引值為奇數(shù)的行

:eq(index)

?? ??? ??? ??? ?說明:匹配一個(gè)給定索引值的元素

?? ??? ??? ??? ?示例:$("div:eq(1)") ? ? ?//匹配第二個(gè)div元素

:gt(index)

?? ??? ??? ??? ?說明:匹配所有大于給定索引值的元素

?? ??? ??? ??? ?示例:$("span:gt(0)") ? ? ? //匹配索引大于0的span元素(注:大于0,而不包括0)

:lt(index)

?? ??? ??? ??? ?說明:匹配所有小于給定索引值的元素

?? ??? ??? ??? ?示例:$("div:lt(2)") ? ? //匹配索引小于2的div元素(注:小于2,而不包括2)

:header

?? ??? ??? ??? ?說明:匹配h1,h2,h3......之類的標(biāo)題元素

?? ??? ??? ??? ?示例:$(".cls:header") ? ? ?//匹配全部類名為cls的標(biāo)題元素,如果":"前不寫則匹配所有的標(biāo)題元素

:not(selector)

?? ??? ??? ??? ?說明:去除所有給定選擇器匹配的元素

?? ??? ??? ??? ?示例:$("input:not(:checked)") ? ? ? ? //匹配沒有被選中的input元素

animated

?? ??? ??? ??? ?說明:匹配所有正在執(zhí)行動(dòng)畫效果的元素

?? ??? ??? ??? ?示例:$("div:animated") ? ? ? ? ?//匹配正在執(zhí)行的動(dòng)畫的div元素

2.內(nèi)容過濾器

?? ??? ??? ?內(nèi)容過濾器就是通過DOM元素包含的文本內(nèi)容以及是否含有匹配的元素進(jìn)行篩選

:contains(text)

?? ??? ??? ??? ?說明:匹配包含給定文本的元素

?? ??? ??? ??? ?示例:$("li:contains('word')") ? ? ?//匹配含有"word"文本內(nèi)容的元素

:empty

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

?? ??? ??? ??? ?示例:$("td:empty") ? ? ? ?//匹配不包含子元素或者文本的單元格

:has(selector)

?? ??? ??? ??? ?說明:匹配含有選擇器所匹配元素的元素

?? ??? ??? ??? ?示例:$("td:has(p)") ? ? ? ? ? //匹配表格的單元格中還有<p>標(biāo)記的單元格

:parent

?? ??? ??? ??? ?說明:匹配含有子元素或者文本的元素

?? ??? ??? ??? ?示例:$("td:parent") ? ? ?//匹配不為空的單元格,即在該單元格中還包括子元素或則文本

3.可見性過濾器

?? ??? ??? ?元素的可見狀態(tài)有兩種,分別是隱藏狀態(tài)和顯示狀態(tài)??梢娦赃^濾器就是利用元素的可見狀態(tài)匹配元素的

:visible

?? ??? ??? ??? ?說明:匹配所有可見元素

:hidden

?? ??? ??? ??? ?說明:匹配所有不可見元素

?? ??? ??? ??? ?注意:在應(yīng)用:hidden過濾器時(shí),display屬性是none以及input元素的type屬性為hidden的元素都會(huì)被匹配識(shí)別

4.表單對(duì)象的屬性過濾器

?? ??? ??? ?表單對(duì)象的屬性過濾器通過表單元素的狀態(tài)屬性(例如:選中、不可用等狀態(tài))匹配元素

:checked

?? ??? ??? ??? ?說明:匹配所有選中的被選中元素

?? ??? ??? ??? ?示例:$("input:checked") ? ? ? ? ? ?//匹配所有被選中的input元素

:disabled

?? ??? ??? ??? ?說明:匹配所有不可用元素

?? ??? ??? ??? ?示例:$("input:disenabled") ? ? ? ? ? //匹配所有不可用input元素

:enabled

?? ??? ??? ??? ?說明:匹配所有可用的元素

?? ??? ??? ??? ?示例:$("input:enabled") ? ? ? ? //匹配所有可用的input元素

:selected

?? ??? ??? ??? ?說明:匹配所有選中的option元素

?? ??? ??? ??? ?示例:$("select option:selected") ? ? ? ? ? ?//匹配所有被選中的選項(xiàng)元素

5.子元素過濾器

?? ??? ??? ?子元素選擇器就是篩選給定某個(gè)元素的子元素,具體的過濾條件由選擇器的種類而定

:first-child

?? ??? ??? ??? ?說明:匹配所有給定元素的第一個(gè)子元素

?? ??? ??? ??? ?示例:$("ul ?li:first-child") ? ? ? ? ? ?//匹配ul元素中的第一個(gè)子元素li

:last-child

?? ??? ??? ??? ?說明:匹配所有給定元素的最后一個(gè)子元素

?? ??? ??? ??? ?示例:$("ul ?li:last-child") ? ? ? ? ? ?//匹配ul元素中的最后一個(gè)子元素li

:only-child

?? ??? ??? ??? ?說明:如果某個(gè)元素是它父元素中唯一的子元素,那么將會(huì)被匹配,如果父元素中含有其他元素,則不會(huì)被匹配

?? ??? ??? ??? ?示例:$("ul ?li:only-child") ? ? ? ? ? ?//匹配只含有一個(gè)li元素的ul元素中的li

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

?? ??? ??? ??? ?說明:匹配可每個(gè)父元素下的第index個(gè)子或奇偶元素,index從1開始,而不是從0開始

?? ??? ??? ??? ?示例:$("ul li :nth-child(even)") ? ? ? ? ? //匹配ul中索引值為偶數(shù)的li元素

?? ??? ??? ??? ?$("ul li:nth-child(3)") ? ? ? ? ? ? ?//匹配ul中第3個(gè)li元素

四、屬性選擇器

?? ??? ?屬性選擇器就是通過元素的屬性作為過濾條件進(jìn)行篩選對(duì)象

?? ??? ?[attribute]

?? ??? ??? ?說明:匹配包含給定屬性的元素

?? ??? ??? ?示例:$("div[name]") ? ? ? //匹配包含有name屬性的div元素

?? ??? ?[attribute=value]

?? ??? ??? ?說明:匹配屬性值為value的元素

?? ??? ??? ?示例:$("div[name='test']") ? ? ? ? ? //匹配name屬性是test的div元素

?? ??? ?[attribute!=value]

?? ??? ??? ?說明:匹配屬性值不等于value的元素

?? ??? ??? ?示例:$("div[name!='test']") ? ? ? ? //匹配name屬性不是test的div元素

?? ??? ?[attribute*=value]

?? ??? ??? ?說明:匹配屬性值含有value的元素

?? ??? ??? ?示例:$("div[name*="test"]") ? ? ? ? //匹配name屬性值中含有test值的div元素

?? ??? ?[attribute^=value]

?? ??? ??? ?說明:匹配屬性值以value開始的元素

?? ??? ??? ?示例:$("div[name^='test']") ? ? ? ? //匹配name屬性以test開頭的div元素

?? ??? ?[attribute$=value]

?? ??? ??? ?說明:匹配屬性值以value結(jié)束的元素

?? ??? ??? ?示例:$("div[name$='test']") ? ? ? ? //匹配name屬性以test結(jié)尾的div元素

?? ??? ?[selector1][selector2][selectorN]

?? ??? ??? ?說明:復(fù)合屬性選擇器,需要同時(shí)滿足多個(gè)條件時(shí)使用

?? ??? ??? ?示例:$("div[id][name^='test']") ? ? ? ? ? ?//匹配具有id屬性并且name屬性是以test開頭的div元素

? ? 五、表單選擇器

表單選擇器是匹配經(jīng)常在表單內(nèi)出現(xiàn)的元素。但是匹配的元素不一定在表單中

:input

?? ??? ??? ?說明:匹配所有的input元素

?? ??? ??? ?示例:

? ? ? ? ? ? ? ? ?$(":input") ? ? ? ?//匹配所有的input元素

? ? ? ? ? ? ? ? ?$("form :input") ? ? ? ? //匹配<form>標(biāo)記中的所有input元素,需要注意,在form和冒號(hào)之間有一個(gè)空格

:button

?? ??? ??? ?說明:匹配所有的普通按鈕,即type="button"的input元素

?? ??? ??? ?示例:$(".button") ? ? ? ? ? ? //匹配所有普通按鈕

:checkbox

?? ??? ??? ?說明:匹配所有的復(fù)選框

?? ??? ??? ?示例:$(":checkbox") ? ? ? ? ? //匹配所有的復(fù)選框

:file

?? ??? ??? ?說明:匹配所有的文件域

?? ??? ??? ?示例:$(":file") ? ? ? ? ? ? //匹配所有的文件域

:hidden

?? ??? ??? ?說明:匹配所有的不可見元素,或者type為hidden的元素

?? ??? ??? ?示例:$(":hidden") ? ? ? ? //匹配所有的隱藏域

:image

?? ??? ??? ?說明:匹配所有的圖像域

?? ??? ??? ?示例:$(":image") ? ? ? ? ? ?//匹配所有的圖像域

:password

?? ??? ??? ?說明:匹配所有的密碼域

?? ??? ??? ?示例:$(":password") ? ? ? ? ? ?//匹配所有的密碼域

:radio

?? ??? ??? ?說明:匹配所有的單選按鈕

?? ??? ??? ?示例:$(":radio") ? ? ? ? ? ?//匹配所有的單選按鈕

:reset

?? ??? ??? ?說明:匹配所有的重置按鈕,即type="reset"的input元素

?? ??? ??? ?示例:$(":reset") ? ? ? ? ?//匹配所有的重置按鈕

:submit

?? ??? ??? ?說明:匹配所有的提交按鈕,即type="submit"的input元素

?? ??? ??? ?示例:$(":submit") ? ? ? ? ? ?//匹配所有的提交按鈕

:text

?? ??? ??? ?說明:匹配所有的單行文本框

?? ??? ??? ?示例:$(".text") ? ? ? ? ? //匹配所有的單行文本框


選擇器中注意事項(xiàng)

?1.選擇器中含有特殊符號(hào)的注意事項(xiàng)

?? ??? ??? ?含有"."、"#"、"{"、"}"等特殊字符:根據(jù)W3C規(guī)定,屬性值中是不能包含這些特殊字符的,但在實(shí)際的項(xiàng)目中偶爾會(huì)遇到這種表達(dá)式中含有"#"和"}"等特殊字符的情況。這時(shí),如果按照普通方法去處理的話就會(huì)出現(xiàn)錯(cuò)誤,解決這類錯(cuò)誤的方法是使用轉(zhuǎn)義符號(hào)將其轉(zhuǎn)義。

<div id="li#db">liaidb</div>

<div id="lidb(1)">lilovedb</div>

如果按照普通方式來獲取,例如:

$("#li#db");

$("#lilovedb(1)");

這樣是不能正確獲取到元素的,正確的寫法如下:

$("#li\\#db");

$("#lilovedb\\(1\\)");

?2.屬性選擇器的@符號(hào)問題:

在jQuery升級(jí)版本過程中,jQuery在1.3.1版本中徹底放棄了1.1.0版本遺留的@符號(hào),假如我們使用1.3.1以上的版本,那么不需要在屬性前添加@符號(hào)

$("div[@name="lidb"]");

正確寫法是將@符號(hào)去掉,即改為如下形式:

$("div[name="lidb"]");

?? ??? ?選擇器中空格的注意事項(xiàng)

?? ??? ??? ?在實(shí)際應(yīng)用當(dāng)中,選擇器中含有空格也是不容忽視的,多一個(gè)空格或則少一個(gè)空格也會(huì)得到截然不同的結(jié)果。

? ? <div class="name">

? ? ? ? <div style="display: none;">小李</div>

? ? ? ? <div style="display: none;">小王</div>

? ? ? ? <div style="display: none;">小明</div>

? ? ? ? <div style="display: none;" class=name>小張</div>

? ? </div>

? ? <div style="display: none;" class=name>小玉</div>

? ? <div style="display: none;" class=name>小劉</div>


? ? 使用如下的jQuery選擇器分別獲取它們

? ? <script type="text/javascript">

? ? ? ? var $a=$(".name :hidden");

? ? ? ? var $b=$(".name:hidden");

? ? ? ? console.log($a)

? ? ? ? console.log($b)

? ? </script>


版權(quán)聲明:版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請注明網(wǎng)址,謝謝 https://blog.csdn.net/Chenftli/article/details/81588447

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,091評(píng)論 1 92
  • 選擇器的意義就是將眾多html代碼中準(zhǔn)確的找出我們想找的單元。接下來將常見的選擇器以及作用列舉出來。 基本選擇器 ...
    布爾教育閱讀 191評(píng)論 0 0
  • 1. 基本選擇器 ?基本選擇器是JQuery最常用的選擇器,也是最簡單的選擇器,它通過元素id、class和標(biāo)簽名...
    小偉_be27閱讀 3,467評(píng)論 0 1
  • 第一章 入門 基本功能:訪問和操作 dom 元素,控制頁面樣式,對(duì)頁面的事件處理,與ajax完美結(jié)合,有豐富的插件...
    X_Arts閱讀 1,138評(píng)論 0 2
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的,因此網(wǎng)頁是網(wǎng)絡(luò)信息傳遞的載體。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 4,906評(píng)論 0 0

友情鏈接更多精彩內(nèi)容