jQuery所支援的各類CSS選擇器
jQuery In Action 是不錯的技術圖書,主要學習其選擇器,具體使用時可以根據需要檢視示例中的程式碼。對於AJAX方面的應用,個人感覺還是直接選用對應的框架或控制元件完成更合適。
jQuery有子選擇器、容器選擇器和特性選擇器三類選擇器,可以巢狀使用
jQuery所支援的基本CSS選擇器
-------------------------------------------------------------------------------
選擇器 描述
-------------------------------------------------------------------------------
* 匹配任何元素
E 匹配標籤名稱為E的所有元素
E F 匹配標籤名稱為F,同時作為E的後代節點的所有元素
E>F 匹配標籤名為F,同時作為E的直接子節點的所有元素
E+F 匹配前面是鄰近兄弟節點E的所有元素F(E和F緊挨著)
E-F 匹配前面是任何兄弟節點E的所有元素F(E和F不需要緊挨著)
E:has(F) 匹配標稱名為E,至少有一個標籤名為F的後代節點的所有元素
E.C 匹配類為C的所有元素E
E#idvalue 匹配id為指定的idvalue的元素E
E[A] 匹配帶有特性A的所有元素E
-----------------------------------------------------------------------------------
jQuery的位置選擇器
jQuery支援更高階的位置選擇器:根據在DOM裡的位置來選擇元素
-------------------------------------------------------------------------------------
選擇器 描述
--------------------------------------------------------------------------------------
:first 第一個匹配項。li a:first返回第一個在<li>中的超連結物件
:last 最後一個匹配項。 li a:last返回最後一個在<li>中的超連結物件
:first-child 第一個子元素。 li:first-child返回每個列表的第一個<li>子元素(第一個li物件)
:last-child 最後一個子元素。li:last-child返回每個列表的最後一個<li>子元素(最後一個li物件)
:only-child 返回沒有兄弟節點的所有對應元素。ul:only-child返回沒有兄弟節點的<ul>元素
:nth-child(n) 返回第n個子節點(n從1開始計數)。li:nth-child(2)返回每個列表的第2個<li>項
:nth-child(even|odd) 返回偶數或奇數的子節點(從1開始計數)。li:nth-child(even)返回每個列表中的偶數<li>項
:nth-child(Xn+Y) 根據傳入的公式計算的第n個子節點。如果Y為0,則忽略Y。n從0開始,且X不等於0。li:nth-child(3n)返回序號是3的倍數的<li>項,而li:nth-child(5n+1)則返回序號是5的倍數加1的<li>項
:even或:odd 返回頁面內的偶數或奇數的匹配元素。如li:even返回全部偶數<li>項,注意,序號計算是按整頁內來計數的。
:eq(n) 返回第n個匹配的元素(n從0開始計數)
:gt(n) 返回第n個匹配元素之後的元素(n從0開始計數,不包括第n個元素)
:lt(n) 返回第n個匹配元素之前的元素(n從0開始計數,不包括第n個元素)
-------------------------------------------------------------------------------------
jQuery自定義篩選選擇器
-----------------------------------------------------------------------------------------------------
選擇器 描述
------------------------------------------------------------------------------------------------------
:animated 選擇當前處於動態控制之下的元素。
:button 選擇任何按鈕
:checkbox 選擇任何複選框元素
:checked 選擇任何已選中的複選框元素或單選按鈕
:contains(foo) 選擇包含文字foo的元素
:disabled 選擇在介面上已經禁用的表單元素
:enabled 選擇在介面上已經啟用的表單元素
:file 選擇所有檔案元素(input[type=file])
:header 選擇標題元素(包括<h1>、<h2>直到<h6>)
:hidden 選擇隱藏元素
:image 選擇表單中的影象元素
:input 選擇表單元素(包括:<input>, <select>, <textarea>,<button>)
:not(filter) 根據指定篩選器進行求反後得到的元素
:parent 選擇在擁有後代節點的元素
:password 選擇口令元素
:radio 選擇單選按鈕元素
:reset 選擇復位元素
:selected 選擇已選中的選項元素
:submit 選擇提交按鈕
:text 選擇文字欄位元素
:visible 選擇可見元素
----------------------------------------------------------------------------------------------------------
jQuery中有兩個有用的自定義選擇符:odd和:even。如以下程式碼可以設定表格的奇、偶數行有不同的風格:
$(document).ready(functioin() {
$("tr:odd").addClass("oddstyle");
$("tr:even").addClass("evenstyle");
});
其中,tr:odd則選中表中的所有奇數行,然後新增樣式oddstyle;tr:even則選中表中的所有偶數行,然後新增樣式evenstyle。當然oddstyle這樣式和evenstyle樣式必須先在css檔案中定義出來。
contains選擇符
contains選擇符是指物件中包括指定內容的物件本身,如:$('td:contains("abcd")').addClass('highlight');則是找到所有包含“abcd”這樣內容的單元格,設定這些單元格的樣式型別新增“highlight”類。