jQuery神奇的選擇器(Selector)

就像正規運算式(Regular Expression)的Pattern match一般,jQuery使用了CSS(Cascading Style Sheet)、XPath(XML Path Language)與自訂等三大類的選擇器(Selector)當做$( )函數的參數,讓我們由複雜多樣的DOM結構裡,快速的找出符合樣式的要素。

使用選擇器的三個基本格式是:

格式 範例 說明
1 $("HTML標籤") $("div") 傳回表示所有div要素的jQuery物件
2 $("#要素的ID") $("#linksLeft") 傳回表示

要素的jQuery物件
3 $(".要素的類別") $(".blogname") 傳回

要素的jQuery物件

CSS選擇器

更完整的CSS Selector如下表:

樣 式 說明 範例
* 萬用選擇器(Universal selector);表示所有的要素 $("*")
E Type selectors;選取指定的要素類型 $("div") 選取所有的div要素
E > F Child selectors;選取E的子要素F $("div > li") 選取div要素裡的子要素li
E F Descendant selectors;選取E的後代要素F,子代、孫代、… $("div li")
E + F 套用緊鄰在E之後的要素F 範例在表格下面
E:first-child E是第一個子要素;這個表示方法似乎不是很直覺,容易被理解成是E的第一個子要素,但其實是:E是其父要素的第一個子要 素 $(".blogbody:first-child") 找到首頁第一篇文章
E:last-child E是其父要素的最後一個子要素 $(".blogbody:last-child") 找到首頁最後一篇文章
E:nth-child(n) E是其父要素的第n個子要素 $(".blogbody:nth-child(2)") 找到首頁第3篇文章(由0起算)
E:only-child E是唯一的子要素 $(".blogname:only-child")
E:empty E沒有任何的子要素 $("div:empty")
E:enabled 生效的要素E HTML標籤沒有被加上disabled
E:disabled 失效的要素E HTML標籤被加上disabled
E:checked 被勾選的要素E HTML標籤被加上chedked
E:selected 被選取的要素E HTML標籤被加上selected
E:not(s) 不屬於s的要素E $(".blogbody:not(blogbody_even)
E[@attr] 有指定屬性的要素E $("a[@href]) 找出所有的")
E[@attr=value] 屬性的值完全相同的要素E $("h3[@class=hdr]")
E[@attr^=value] 屬性的值以value開頭的要素E $("a[@href^=http://blog.xuite.net]")
E[@attr$=value] 屬性的值以value結尾的要素E $("a[@href$=.pdf]")
E[@attr*=value] 屬性的值含有value的要素E $("a[@href*=xuite.net]")
E[@attr1=value1]
[@attr2=value2
選取條件同時成立的要素E
  • E + F 範例:
 h2 + * { color:green } /*所有緊隨 h2 的要素内的文字皆為紅色 */
h1 + p { border-top: 3px solid #f60; }
  • HTML原始碼(標題會套用h1 + p):

標題

段落 A 段落 B 段落 C

自訂的選擇器

樣 式 說明 範例
:even 要素的偶數項 $("tbody tr:even").addClass("even")
:odd 要素的奇數項 $("tbody tr:odd").addClass("odd")
:eq(N) 第N項的要素 $("div.blogbody:eq(0)") 選第一篇文章
:gt(N) 大於第N項的要素 $("div.blogbody:gt(3)") 選第五篇(由0起算)~第十篇的文章(假設首頁只有十篇)
:lt(N) 小於第N項的要素 $("div.blogbody:lt(3)") 選第一篇至第三篇文章
:first 等於:eq(0),第一個要素 $("div.blogbody:first‘) 選第一篇文章
:last 最後的要素 $("div.blogbody:last") 第十篇文章
:parent 選取自己是父代的要素 $("div.blogbody:parent") 有子要素的文章會被選取
:contains("text") 選取含有指定文字的要素 $("div.title:contains(‘jQuery’)") 找出有jQuery字串的標題
:visible 有呈現出的要素
:hidden 隱藏了的要素

表單的選擇器

樣 式 說明 範例
:input 選取所有的輸入要素,包含input、select、textara、 button等 $("#form1 :input")
:text 選取

的要素
:password 選取

的要素
:radio 選取

的要素
:checkbox 選取

的要素
:submit 選取

的要素
:image 選取

的要素
:reset 選取

的要素
:button 選取

的要素
:reset 選取

的要素
:file 選取

的要素
  • 表單和選擇器之間至少要空一格,如: $("#fom1 :button")會生效,$("#form1:button")則無法運作

參考:http://docs.jquery.com/DOM/Traversing/Selectors#CSS_Selectors

您可能也會有興趣的類似文章

2 則留言 »jQuery神奇的選擇器(Selector)

填寫回應

 

 

 

您可使用這些HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

隨機文章

  1. [Tools] 跨平台的小畫家工具:mtPaint 2.30 
  2. [轉貼] 昇陽新授權要強化Java與Linux相容性 
  3. Plurk CSS樣式自訂修改全攻略 (77)
  4. 搖一搖手機快速擷取螢幕:ShakeAndSave (2)
  5. [Tools] 重排工具列按鈕的順序: TaskBar++ (1)
  6. [轉貼數位時代] 20條律則,揭秘英特爾管理學 
  7. [WordPress] 在插頁寫PHP的外掛:EXEC-PHP,讓行動版網頁顯示訪客統計 
  8. [Tools] 螢幕擷取工具的後起之秀:Screenshot Captor (2)
  9. [2011/05/05 長灘島之旅第二天] 逛Talipapa、乘風帆破浪行 
  10. [轉貼e天下] 發揮創意 blog引爆商機 

歷史熱門文章

  1. 如何手動輸入Plurk的表情圖示? (353,056 點擊/2008-09-29)
  2. 簡單放大Plurk輸入區的方法[修訂] (86,924 點擊/2008-09-29)
  3. 啟用&關閉中華電信ZyXEL P874的無線網路連線功能的步驟[修訂] (83,953 點擊/2011-06-01)
  4. Plurk CSS樣式自訂修改全攻略 (83,109 點擊/2009-07-04)
  5. 網路升級光世代50M/3M與設定ZyXEL P874 (53,282 點擊/2011-05-28)
  6. 輕鬆學會彈指神功-揭露AutoHotkey絕技 (43,158 點擊/2008-04-10)
  7. iPad新手入門技巧 (40,414 點擊/2011-02-05)
  8. 分享世博台灣館主題曲『台灣的心跳聲』MV(附歌詞+下載連結+新歌詞) (38,149 點擊/2010-04-27)
  9. 把HTC Touch HD操作介面換成Spb Mobile Shell,美觀又便利! (37,954 點擊/2009-02-18)
  10. 另一套適用手機的影片轉檔工具:WinAVI 3GP/MP4/PSP/iPod Video Converter (35,920 點擊/2009-04-18)