╊埃摸┬мォ剪е硉Τ瞯
禣瞷初︳基眔眤獺苦
﹡產睲间т杆鍯祘诀穦絬禬筁κ掸弘匡杆鍯ン礚阶钡穝も盡戮SOHO
钡そ常硂т

    j2h 阶韭  祘Α砞璸癚阶      

[JQuery] 神奇的選欅器(Selector)

┬狥小�
祇丁2011-11-13
[浪羭]











 








就像正�運\ 算式(Regular Expression)的Pattern match一般,jQuery使用了CSS(Cascading Style Sheet)、XPath(XML Path Language)與自�等三大�的選欅器(Selector)�做$( )函㩞的�㩞,�我�由複雜多畭的DOM結�裡,快速的找出符合畭式的要素。



使用選欅器的三�基本格式是:































格式 �例 說明
1 $("HTML㻢籤") $("div") �回表示所有div要素的jQuery物件
2 $("#要素的ID") $("#linksLeft") �回表示<div id="linksLeft">要素的jQuery物件
3 $(".要素的��e") $(".blogname") �回<div class="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]) 找出所有的<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):


<h1>㻢題</h1>
<p>段落 A</p>
<p>段落 B</p>
<p>段落 C</p>

自�的選欅器



































































畭 式 說明 �例
: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 選取<input type="text">的要素  
:password 選取<input type="password">的要素  
:radio 選取<input type="radio">的要素  
:checkbox 選取<input type="checkbox">的要素  
:submit 選取<input type="submit">的要素  
:image 選取<input type="image">的要素  
:reset 選取<input type="reset">的要素  
:button 選取<input type="button">的要素  
:reset 選取<input type="reset">的要素  
:file 選取<input type="file">的要素  


  • 表�和選欅器之間至少要空一格,如: $("#fom1 :button")𩂰生效,$("#form1:button")�t剠法運\作


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


表�和選欅器之間至少要空一格,如: $("#fom1 :button")𩂰生效,$("#form1:button")�t剠法運\作


這點要補充一下


$("#fom1 :button")是指button,且被id鮋form1的𡌂西包著


$("#form1:button")是指id鮋form1的button


那空格是十分重要的






  • 觅呼       

    約ぃ笆玻-穝狾疭跋程蔼眔眤獺苦┬ヲ
    眤Λ,約ノみ眤狝叭
    約ぃ笆玻-狾爵ネ程龟--穝狾疭跋程蔼眔眤獺苦┬ヲ
    Ч俱┬癟┬┍荐弘匡ン約ぃ笆玻 纔借ヲざ┬割禦芥戈癟硓ユ痷み



  •  0 莱

    ﹎
    ず甧