jQuery 選擇器

以下皆為舉例說(shuō)明

ID選擇器 :$("#id");
類(lèi)名選擇器 : $(".class");
標(biāo)簽選擇器 : $("ele");
群組選擇器 : $("#id , .class , ele");
后代選擇器 : $("ul li a");
等價(jià)方法 : $("#ID").find("ele");
通配符選擇器 : $("*"); //  一般用在局部環(huán)境中 
比如 : $("ul li *"); 選擇到ul里的li的所有標(biāo)簽

選擇器靈活使用束莫,可以使得選擇元素更加精準(zhǔn)和快速唤锉;
還有一種選擇器冬骚,可以在ID和類(lèi)中指明元素前綴椅贱,比如

$("div.box") // 獲取類(lèi)名為box的div

類(lèi)有一個(gè)特殊的模式懂算,就是同一DOM多個(gè)類(lèi)名,對(duì)于這種模式庇麦,我們有多個(gè)類(lèi)可以使用计技,但要注意和群組選擇器之間的區(qū)別

$(".box.pic") // 獲取類(lèi)名既有box又有pic的元素

警告:在構(gòu)造選擇器時(shí),有一個(gè)通用的優(yōu)化原則:只追求必要的確定性山橄。當(dāng)選擇器篩選越復(fù)雜垮媒,jQuery內(nèi)部的選擇器引擎處理字符串的時(shí)間就越長(zhǎng)。

子選擇器 : $("#ID > ele") ;
等價(jià)方法 : $("#ID").children("ele");
next選擇器 : $("div + p")  //只獲取某一個(gè)節(jié)點(diǎn)的后一個(gè)同級(jí)DOM對(duì)象
等價(jià)方法 : $("div").next("p")
prev選擇器 :$("div").prev("p") // 獲取同級(jí)的上一個(gè)節(jié)點(diǎn)
等價(jià)方法  : $("div").prevAll("p") // 獲取同級(jí)上面所有的節(jié)點(diǎn)
siblings選擇器 : $("div").siblings("p") // 獲取同級(jí)上下所有的節(jié)點(diǎn)
nextAll選擇器 : $("div~p") // 獲取某節(jié)點(diǎn)后面所有的同級(jí)節(jié)點(diǎn)
等價(jià)方法 :$("div').nextAll("p")

如果 等價(jià)方法里不書(shū)寫(xiě)任何內(nèi)容航棱,其實(shí)睡雇,就相當(dāng)于里面書(shū)寫(xiě)了*號(hào),通常情況下饮醇,不建議這樣使用它抱,對(duì)性能有一定的影響且精準(zhǔn)度不佳
比如

$("div").next(); // next方法里沒(méi)有限定節(jié)點(diǎn),所以朴艰,無(wú)論與div同級(jí)的下一個(gè)節(jié)點(diǎn)是什么观蓄,都會(huì)被選中,而如果限定為p節(jié)點(diǎn)祠墅,那么假如侮穿,div的下一個(gè)同級(jí)節(jié)點(diǎn)不是p,那么將不會(huì)被選中

那么這么多選擇器毁嗦,在實(shí)際工作中亲茅,我們究竟應(yīng)該如何選擇呢?
其實(shí)金矛,無(wú)論從性能芯急,還是語(yǔ)義化及jQuery本身來(lái)考慮,我們都應(yīng)該選擇jQuery提供的方法驶俊,畢竟css的模式過(guò)于死板娶耍,所以,如果jQuery提供了獨(dú)立的方法來(lái)代替某些選擇器的功能饼酿,我們建議優(yōu)先使用此類(lèi)方法榕酒。

屬性選擇器

$("a[title]") // 標(biāo)簽為a,且具有title屬性的節(jié)點(diǎn) 
$("a[title = num]") // 標(biāo)簽為a故俐,且具有title屬性且屬性值為num的節(jié)點(diǎn)
$("a[title != num]") // 標(biāo)簽為a想鹰,且具有title屬性且屬性值不為num的節(jié)點(diǎn)

過(guò)濾選擇器

$("li:first") // 獲取第一個(gè)li
$("li:last") // 獲取最后一個(gè)li
$("li:not(.red)") // 獲取li 里類(lèi)名不是red的所有節(jié)點(diǎn)
$("li:even") // 獲取偶數(shù)li,索引號(hào)從0開(kāi)始
$("li:odd") // 獲取奇數(shù)li药版,索引號(hào)從0開(kāi)始
$("li:eq(3)") // 獲取li里的第四個(gè)辑舷,索引號(hào)從0開(kāi)始,所以是3+1槽片; 值可以為負(fù)何缓,即從尾部開(kāi)始計(jì)算
$("li:gt(2)") // 獲取索引號(hào)大于2的所有元素肢础,索引號(hào)從0開(kāi)始
$("li:lt(2)") // 獲取索引號(hào)小于2的所有元素,索引號(hào)從0開(kāi)始
$("focus") // 選擇當(dāng)前焦點(diǎn)閃爍的元素  注意碌廓,是網(wǎng)頁(yè)初始狀態(tài)就已經(jīng)激活的焦點(diǎn)传轰,并不是事件觸發(fā)的,所以需做以下處理
$(":focus").get(0).focus();

jQuery為最常規(guī)的過(guò)濾選擇器提供了專(zhuān)用的方法谷婆,用來(lái)提高性能和效率

$("li").first(); // 在使用first() , last()方法時(shí)慨蛙,為了避免相同元素造成的影響,應(yīng)指明其父元素
$("li").last();
$("li").not();
$("li").eq(2);

內(nèi)容過(guò)濾器

$("div:contains('baidu.com')") // 選取含有"baidu.com"文本的元素
$("div:empty") // 選取不包含子元素或空文本的元素
$(":has(.red)")  // 選取子元素含有class是red的元素
比如 : $("ul:has('.red')") // 選擇的就是整個(gè)ul 纪挎, 而不是含有red類(lèi)名的li
等價(jià)方法 : $("ul").has(".red")
$(":parent") // 選取含有子元素或文本的元素
$("li").parent() // 選取當(dāng)前元素的父節(jié)點(diǎn)
$("li").parentUntil("body") // 選取當(dāng)前元素的父節(jié)點(diǎn)遇到body節(jié)點(diǎn)停止

可見(jiàn)性過(guò)濾器

$(":hidden") // 選取所有不可見(jiàn)元素
$(":visible") // 選取所有可見(jiàn)元素

子元素過(guò)濾器

$("li:first-child") // 獲取每個(gè)父元素的第一個(gè)子元素
$("li:last-child") // 獲取每個(gè)父元素的最后一個(gè)子元素
$("li:only-child") // 獲取只有一個(gè)子元素的元素
// 下面三個(gè)選擇器期贫,索引值皆為從1開(kāi)始
$("li:nth-child(even)") // 獲取每個(gè)父元素的偶數(shù)li元素
$("li:nth-child(odd)") // 獲取每個(gè)父元素的奇數(shù)li元素
$("li:nth-child(2)") // 獲取每個(gè)父元素的第2個(gè)li元素

其他方法

$(".red").is("li")
$("li").slice(0,2) // 前三個(gè)元素被選中
$("li").slice(2,4) // 3,4被選中
$("li").slice(0,-2) // 從后向前數(shù),倒數(shù)第一個(gè)和倒數(shù)第二個(gè)不選异袄,其他全選
$("li").slice(2,-2) // 前兩個(gè)不選唯灵,后兩個(gè)不選,其他全選
$("div").contents() // 返回子節(jié)點(diǎn)數(shù)量(包含文本節(jié)點(diǎn))
$("li").filter(".red , :first-child , :last-child") // 可靈活組合選擇器
// 可實(shí)現(xiàn)精確查找
 $(function () {
            $("li").filter(function () {
                return $(this).attr("class") == "red" && $(this).attr("title") == "列表3";
            }).css("background", "#ccc");
        })

本文只是列出一些較為常用的選擇器隙轻,并不是說(shuō)jQuery只有這些選擇器,具體請(qǐng)參考jQuery官方網(wǎng)站 http://jquery.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垢揩,一起剝皮案震驚了整個(gè)濱河市玖绿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叁巨,老刑警劉巖斑匪,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锋勺,居然都是意外死亡蚀瘸,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)庶橱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贮勃,“玉大人,你說(shuō)我怎么就攤上這事苏章〖偶危” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵枫绅,是天一觀的道長(zhǎng)泉孩。 經(jīng)常有香客問(wèn)我,道長(zhǎng)并淋,這世上最難降的妖魔是什么寓搬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮县耽,結(jié)果婚禮上句喷,老公的妹妹穿的比我還像新娘镣典。我一直安慰自己,他們只是感情好脏嚷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布骆撇。 她就那樣靜靜地躺著,像睡著了一般父叙。 火紅的嫁衣襯著肌膚如雪神郊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天趾唱,我揣著相機(jī)與錄音涌乳,去河邊找鬼。 笑死甜癞,一個(gè)胖子當(dāng)著我的面吹牛夕晓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悠咱,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蒸辆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了析既?” 一聲冷哼從身側(cè)響起躬贡,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眼坏,沒(méi)想到半個(gè)月后拂玻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宰译,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年檐蚜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沿侈。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闯第,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缀拭,到底是詐尸還是另有隱情乡括,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布智厌,位于F島的核電站诲泌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏铣鹏。R本人自食惡果不足惜敷扫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧葵第,春花似錦绘迁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至哮奇,卻和暖如春膛腐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鼎俘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工哲身, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贸伐。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓勘天,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捉邢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脯丝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容