多年裝潢經驗,專針對住家裝潢、住家規劃裝潢
專業諮詢為您打造完美居住空間!
壁紙專賣專業施工、完善保固、為您解決居家/辦公大樓漏水
壁癌、外牆防水隔熱問題

首頁  •  tw 論壇 • 程式設計討論     • 

[JQuery] 選擇器 Selectors

房東:妹妹
發表時間:2011-03-22
[檢舉]


選擇器 Selectors




jQuery 的 selector 主要有三種, 其目的在於選擇 HTML 中的元素:


1. HTML Tag - 例如 $(\'p\')

    可以選取所有 <p> 元素


2. 元素 ID - 例如 $(\'#myId\')

    選取 ID 為 myId 的特定元素


3. CSS 類別 - 例如 $(\'.myClass\')

    選取所有套用 myClass 類別的元素


在 jQuery 中就只有這三種標示法。不過如果事情那麼簡單的話, 我也不用花工夫來寫這篇文章了。事實上 jQuery 在以上三種選擇器之外, 又另外提供複雜而又功\能強大的組合標示語法, 配合它的隱含迴圈運算, 讓我們可以更精準的選擇到我們想要的各種 HTML 元素; 我把這些組合標示語法整理如下:


 


Basic Selector



































語法 範例 說明
* $( \' * \' ) All Selector -

選取所有文件中的元素
.class $( \' .myClass \' ) Class Selector -

選取所有套用指定 CSS 類別的元素
tag $ ( \' div \' ) Element Selector -

選取類型為指定 tag 的元素
ID $ ( \' #myId \' ) ID Selector -

選取指定 ID 的元素
a, b, c, ... $ ( \' .myClass, div, #myId \' ) Multiple Selector -

以逗點區隔以選取各元素的聯集

 


Hierarchy






























語法 範例 說明
a > b $( \' table > th \' ) Child Selector -

選取 a 的下一層的直屬子元素 b 的集合
a b $( \' table th \' ) Descendant Selector -

選取 a 的子代元素 b 的集合
a + b $( \' body + table \' ) Next Adjacent Selector -

選取緊跟著 a 元素的 b 元素; 如範例中是選取 body 之下的第一個 table
a ~ b $( \' p ~ span \') Next Siblings Selector -

選取 a 以下的所有 b 元素; 這個 b 元素必須符合 sibling 篩選條件

 


Basic Filter























































:first $( \' ul li:first \' ) First Selector -

選取篩選的集合中的第一個元素
:last $( \' ul li:last \' ) Last Selector -

選取篩選的集合中的最後一個元素
:not(a) $( \' input:not(:checked) \' ) Not Selector -

選取篩選的集合中不符合條件的所有元素
:odd $( \' ul li:odd \' ) Odd Selector -

選取篩選的集合中所有排列順序為奇數的元素(注意: 由0起算)
:even $( \' ul li:even \' ) Even Selector -

選取篩選的集合中所有排列順序為偶數的元素(注意: 由0起算)
:eq(n) $( \' ul li:eq(n) \' ) eq Selector -

選取篩選的集合中從頭算起第幾個元素(注意: 由0起算)
:gt(n) $( \' ul li:gt(n) \' ) gt Selector -

選取篩選的集合中所有排列順序大於n的元素(注意: 由0起算)
:lt(n) $( \' ul li:lt(n) \' ) lt Selector -

選取篩選的集合中所有排列順序小於n的元素(注意: 由0起算)
:animated $( \' ul:animated \' ) Animated Selector -

選取篩選的集合中所有正在進行動畫處理過程中的元素
:header $( \' :header \' ) Header Selector -

選取篩選的集合中所有標示為標題(如 h1, h2 等)的元素

 


Content Filter

























:has(a) $( \' div:has(p) \' ) Has Selector -

選取元素之子元素內包含至少一個符合篩選條件的元素; 在範例中, 找到所有內含 p 元素的 div 元素
:contains(text) $( \' :contains(hello) \' ) Contains Selector -

選取內容文字中包含指定字串的元素
:empty $( \' :empty \' ) Empty Selector -

選取無任何子元素(包括文字節點)的元素
:parent $( \' li:parent \' ) Parent Selector -

選取指定元素(包括文字節點)的所有父節點元素

 


Visibility Filter















:hidden $( \' div:hidden \' ) Hidden Selector

選取被隱藏而不可見 (設定 "visibility:hidden" 或 "display:none" 或 width/height 被設定為 0, 或者因父代元素被設定為隱藏而不可見等等) 的元素
:visible $( \' div:visible \' ) Visible Selector

選取非隱藏的元素 (實際上是根據瀏覽器傳回的 offsetWidth 及 offsetHeight 的值是否大於 0 而決定)

 


Form











































































:input $( \' :input \' ) Input Selector -

選選取所有名為 input 的 tag, 包括 select, textarea 與 button 等
:text $( \' :text \' ) Text Selector -

選取所有類型為 “text” 的元素
:password $( \' :password \' ) Password Selector -

選取所有類型為“password”的元素
:radio $( \' :radio \' ) Radio Selector -

選取所有類型為“radio”的元素
:checkbox $( \' :checkbox \' ) Checkbox Selector -

選取所有類型為“checkbox”的元素
:submit $( \' :submit \' ) Submit Selector -

選取所有類型為“submit”的元素
:image $( \' :image \' ) Image Selector -

選取所有類型為“image”的元素
:reset $( \' :reset \' ) Reset Selector -

選取所有類型為“reset”的元素
:file $( \' :file \' ) File Selector -

選取所有類型為“file”的元素
:button $( \' :button \' ) Button Selector -

選取所有類型為“button”的元素
:enabled $( \' :enabled \' ) Enabled Selector -

選取所有被 enabled 的元素
:disabled $( \' :disabled \' ) Disabled Selector -

選取所有被 disabled 的元素
:selected $( \' :selected \' ) Selected Selector -

選取所有被  selected 的元素
:checked $( \' :checked \' ) Checked Selector -

選取所有類型為 "radio" 或 "checkbox" 的元素

 


Child Filter








































:first-child $( \' ul li:first-child \' ) First-child Selector -

選取集合中的第一個子元素
:last-child $( \' ul li:last-child \' ) Last-child Selector -

選取集合中的最後一個子元素
:only-child $( \' div p:only-child \' ) Only-child Selector -

選取一個本身為其父元素之唯一子元素的元素
:nth-child(n) $( \' ul li:nth-child(n) \' ) nth-child Selector -

選取指定元素的第 n 個子元素 (從1起算)
:nth-child(odd) $( \' ul li:nth-child(odd) \' ) 選取指定元素的所有奇數個子元素 (從1起算)
:nth-child(even) $( \' ul li:nth-child(even) \' ) 選取指定元素的所有偶數個子元素 (從1起算)
:nth-child(formula) $( \' ul li:nth-child(3n) \' ) 選取指定元素的每 n 個子元素 (從1起算); 在範例中是指定每三個子元素

 


Attribute













































[attribute] $( \' [href] \' ) Has Attribute Selector -

選取包含指定 attribute 的所有元素;  範例中會選取所有內含 href 這個 attribute 的元素
[attribute=value] $( \' [rel=external] \' ) Attribute Equals Selector -

選取所有包含指定的 attribute 文字的元素; 範例中會選取所有 ref 這個 attribute 之文字為 "external" 的元素
[\'attribute!=value\'] $( \' [rel!=external] \' ) Attribute Not Equal Selector -

與上一項目相反; 選取所有包含指定的 attribute 文字的元素; 範例中會選取所有 ref 這個 attribute 之文字不是 "external" 的元素”
[attribute^=value] $( \' [class^=open] \' ) Attribute Starts With Selector -

選選取所有內含指定 attribute, 且其內容以指定文字起頭的元素; 範例中會選取所有 class 這個 attribute 是以 "open" 字樣起頭者
[attribute$=value] $( \' [id$=-wrapper] \' ) Attribute Ends With Selector -

與上一項目相反; 選選取所有內含指定 attribute, 且其內容以指定文字結尾的元素; 範例中會選取所有 id 這個 attribute 是以 "-wrapper" 字樣結尾者
[attribute*=value] $( \' [class*=offer] \' ) Attribute Contains With Selector -

選取所有內含指定 attribute, 且其內容包含有指定文字的元素; 範例中會選取所有 class 這個 attribute 內含 "offer" 字樣者
[attribute~=value] $( \' [class~=offer] \' ) Attribute Contains Word Selector -

選取所有內含指定 attribute, 且其內容包含有指定英文字的元素(以空白或行首/末區隔); 範例中會選取所有 class 這個 attribute 內含 "offer" 字樣者; 可以取到 class="my offer", 但取不到 class="myoffer"
[a1=b1][a2=b2] $( \' [class=noshow] [id=myId] \' ) Multiple Attribute Selector -

選取符合多個篩選條件的交集的元素



* 註: 為了提高辨識度, 我在以上範例中都為引號前後加上了不必要的空白; 這不表示我們需要在程式中也這麼做


以上是我所做的總整理; 如果你有興趣, 也可以參考官網上的說明





  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容: