本文最初發(fā)表于本人個人博客http://www./,歡迎大家光臨 。(轉(zhuǎn)載的請不要刪除該行,謝謝合作)
jQuery選擇器其實是一個有些地方比較費解的,如果沒有經(jīng)過多次實驗的話,很難得出它的每個操作符到底是干什么的,很容易出錯,經(jīng)過我的多次測試,終于對一些比較難理解或容易出錯的選擇操作進行總結(jié),既方便自己將來查詢又方便初學(xué)者學(xué)習(xí)。如果哪里有不對的還望大家?guī)臀抑赋鰜恚@里是一個相互學(xué)習(xí)的地方。 1. 先說說通過位置選擇的幾個操作: :first:默認情況下是相對整個頁面來說的第一個,如:li:first表示整個頁面的第一個li元素,而ul li:first表示整個頁面的第一個li元素,并且是在ul下的子元素; :last:同上了,只是是最后一個而已; :first-child:為每個父元素匹配第一個子元素,如li:first-child返回每個ul的第一個li元素??梢赃@樣理解,頁面中的元素有相同的父元素的,并且里面又包含li元素的,那么就取第一個li元素,每個子類集合都要進行判斷,直到找出所有符合要求的li元素; :last-child:這個也與上面相對了,只是取的是最后一個; :only-child:返回所有沒有兄弟節(jié)點的元素,注意,文本元素不是,也就是說類似這樣的<div>hello<a href="">jquery</a></div>,對于這段會選出<a>元素;對于$(”label:only-child“)會選出是label元素,同時它是它父類唯一的子元素的label元素; :nth-child(n):返回第n個子節(jié)點,n從1開始,如果n取0,那么就會選擇所有的元素。如: :nth-child(An+B):返回滿足表達式An+B的所有子節(jié)點,比如3n+1返回所處位置為父節(jié)點子元素的是3的倍數(shù)加1的那個子元素; :even:頁面范圍內(nèi)的處于偶數(shù)位置的元素,如:li:even返回全部偶數(shù)li元素; :odd:頁面范圍內(nèi)的處于奇數(shù)位置的元素; :eq(n):第n個匹配的元素(n從0開始),如:li:eq(3)返回整個頁面的第四個li元素,ul li:eq(1)返回頁面中第一個ul元素下的第二個li元素,注意:只匹配一次就返回了; :gt(n):第n個匹配元素(不包括)之后的元素(n從0開始),如:ul:gt(2)返回從第3個ul開始的所有ul元素(含第三個); :lt(n):第n個匹配元素(不包括)之前的元素(n從0開始),如:ul:lt(2)返回從第0個和第1個ul元素; 2. 利用css選擇器進行選擇: 元素標(biāo)簽名:比如說$(”a“)會選出所有鏈接元素; #id:通過元素id進行選擇,比如說$("#form1")會選擇id為form1的元素; .class:通過元素的CSS類來選擇,比如說$(".boldstyle")會選擇CSS為boldstyle類的元素; 標(biāo)簽名#id.class:通過某類元素的id屬性和class屬性來選擇,如:$(a#blog.boldStyle)會選擇id為blog并且CSS類型為.boldStyle類型的鏈接元素(<a id='blog' class='.boldStyle'>); 父標(biāo)簽名 子標(biāo)簽名.class:通過選擇父標(biāo)簽下的某種CSS類型的子元素,如:$(p a.redStyle)會選擇p段落元素中的鏈接子元素a,且其css類型為.redStyle; 3. 通過子選擇器,容器選擇器和屬性選擇器進行選擇: *:匹配所有的元素,比如說:$(*)會把頁面中的所有元素都返回; E:匹配標(biāo)簽名為E的所有元素,如$("a")返回所有鏈接元素; E F:匹配父元素E下的標(biāo)簽名為F的所有子元素(F可以為E的子類的子類,甚至更遠); E>F:匹配父元素E下的所有標(biāo)簽名為F的直接子元素; E+F:匹配所有標(biāo)簽名為F的元素,并且有E類型的兄弟節(jié)點在該F元素之前(E,F緊挨著); E~F:匹配前面是任何兄弟節(jié)點E的所有元素F(E,F不必緊挨著); E:has(F):匹配標(biāo)簽名為E,至少有一個標(biāo)簽名為F的后代節(jié)點的所有元素E; E.C:匹配帶有類名C的所有元素E。.C等效于*.C; E#I:匹配id為I的所有元素E,#I等效于*#I; E[A]:匹配帶有屬性A的所有元素E; E[A=V]:匹配所有屬性A的值為V的元素E; E[A^=V]:匹配所有元素E,且A的屬性值是V開頭的; E[A$=V]:匹配所有元素E,且A的屬性值是V結(jié)尾的; E[A*=V]:匹配所有元素E,且A的屬性值中包含有V; 4.利用jQuery自定義的選擇器進行選擇: :button:選擇任何按鈕類型的元素,包括input[type=submit]等等; :checkbox:選擇復(fù)選框元素; :file:選擇所有文件類型元素,即input[type=file]; :image:選擇表單中的圖像元素,即input[type=image],注意此處和前面根據(jù)標(biāo)簽名img選擇圖像有點不同哈; :input:選擇表單元素,如<input>,<select>,<textarea>,<button>等; :radio:選擇單選按鈕元素; :reset:選擇復(fù)位按鈕元素,如input[type=reset],button[type=reset]; :submit:選擇提交按鈕元素; :text:選擇文本字段元素,即input[type=text]; :animated:選擇當(dāng)前處于動態(tài)控制下的元素; :contains(hello):選擇包含文本hello的元素; :header:選擇標(biāo)題元素,如<h1>; :parent:選擇擁有后代節(jié)點(包括文本)的元素,而排除空元素; :selected:選擇已選中的選項元素; :visible:選擇可見元素; :enable:選擇界面上已經(jīng)可以使用的表單元素; :disabled:選擇界面上被禁用的表單元素; :checked:選擇已選中的復(fù)選框或單選按鈕; |
|
來自: CevenCheng > 《jQuery》