jQuery選擇器實際上是一個有些地方比較費解的,若是沒有通過屢次實驗的話,很可貴出它的每一個操做符究竟是幹什麼的,很容易出錯,通過 個人屢次測試,終於對一些比較難理解或容易出錯的選擇操做進行總結,既方便本身未來查詢又方便初學者學習。若是哪裏有不對的還望你們幫我指出來,這裏是一 個相互學習的地方。 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:返回全部沒有兄弟節點的元素,注意,文本元素不是,也就是說相似這樣的<div>hello<a href="">jquery</a></div>,對於這段會選出<a>元素;對 於$(」label:only-child「)會選出是label元素,同時它是它父類惟一的子元素的label元素; :nth-child(n):返回第n個子節點,n從1開始,若是n取0,那麼就會選擇全部的元素。如:[*]li:nth-child(2)返回li元素,而且該元素是其父元素的第二個子元素; :nth-child(even|odd):返回偶數或奇數的子節點; :nth-child(An+B):返回知足表達式An+B的全部子節點,好比3n+1返回所處位置爲父節點子元素的是3的倍數加1的那個子元素; :even:頁面範圍內的處於偶數位置的元素,如:li:even返回所有偶數li元素; :odd:頁面範圍內的處於奇數位置的元素; :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元素;css
2. 利用css選擇器進行選擇: jquery
元素標籤名:好比說$(」a「)會選出全部連接元素; #id:經過元素id進行選擇,好比說$("#form1")會選擇id爲form1的元素; .class:經過元素的CSS類來選擇,好比說$(".boldstyle")會選擇CSS爲boldstyle類的元素; 標籤 名#id.class:經過某類元素的id屬性和class屬性來選擇,如:$(a#blog.boldStyle)會選擇id爲blog而且CSS類型 爲.boldStyle類型的連接元素(<a id='blog' class='.boldStyle'>); 父標籤名 子標籤名.class:經過選擇父標籤下的某種CSS類型的子元素,如:$(p a.redStyle)會選擇p段落元素中的連接子元素a,且其css類型爲.redStyle;學習
3. 經過子選擇器,容器選擇器和屬性選擇器進行選擇: 測試
*:匹配全部的元素,好比說:$(*)會把頁面中的全部元素都返回; E:匹配標籤名爲E的全部元素,如$("a")返回全部連接元素; E F:匹配父元素E下的標籤名爲F的全部子元素(F能夠爲E的子類的子類,甚至更遠); E>F:匹配父元素E下的全部標籤名爲F的直接子元素; E+F:匹配全部標籤名爲F的元素,而且有E類型的兄弟節點在該F元素以前(E,F緊挨着); E~F:匹配前面是任何兄弟節點E的全部元素F(E,F沒必要緊挨着); E:has(F):匹配標籤名爲E,至少有一個標籤名爲F的後代節點的全部元素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結尾的; E[A*=V]:匹配全部元素E,且A的屬性值中包含有V;orm
4.利用jQuery自定義的選擇器進行選擇: blog
:button:選擇任何按鈕類型的元素,包括input[type=submit]等等; :checkbox:選擇複選框元素; :file:選擇全部文件類型元素,即input[type=file]; :image:選擇表單中的圖像元素,即input[type=image],注意此處和前面根據標籤名img選擇圖像有點不一樣哈; :input:選擇表單元素,如<input>,<select>,<textarea>,<button>等; :radio:選擇單選按鈕元素; :reset:選擇復位按鈕元素,如input[type=reset],button[type=reset]; :submit:選擇提交按鈕元素; :text:選擇文本字段元素,即input[type=text]; :animated:選擇當前處於動態控制下的元素; :contains(hello):選擇包含文本hello的元素; :header:選擇標題元素,如<h1>; :parent:選擇擁有後代節點(包括文本)的元素,而排除空元素; :selected:選擇已選中的選項元素; :visible:選擇可見元素; :enable:選擇界面上已經可使用的表單元素; :disabled:選擇界面上被禁用的表單元素; :checked:選擇已選中的複選框或單選按鈕;input