Jquery選取器全總結

來源:互聯網
上載者:User

1.Jquery選取器簡介

  (1) Jquery中的選取器完全繼承了CSS的風格,利用Jquery選取器,可以非常便捷和快速的找出特定的Dom元素,然後為他們添加相應的行為,而無需擔心瀏覽器是否支援這一選取器,學會使用選取器是學習Jqeury的基礎,Jquery的行為規則都必須在擷取到元素後才會生效。

2.jquery選取器的優勢

  (1) 簡潔的寫法,$()函數

  (2)支援CSS1到CSS3選取器

  (3)完善的處理機制

3.下面我們主要來說一下Jquery中所有的選取器

  (1) 基本選取器:通過元素id,class和標籤名等來尋找Dom元素

       1)$("#id") 根據給定的ID匹配一個元素,返回單個元素  $("#name")選取Id為test的元素

       2)$(".class") 根據給定的類名匹配元素 返回集合元素  $(".class")選取所有class為class的元素

       3)$("element") 根據給定的元素名匹配元素,返回集合元素  $("input")選取所有的input元素

       4)$("*") 匹配所有的元素,返回集合元素,$("*")選取所有的元素

       5)$("selector1,selector2,...,selectorN") 將每一個選取器匹配到的元素合并後返回集合元素, $("div,span,p.myClass")選取所有<div>,<span>和擁有class為myClass的<p>標籤的一組元素

  (2)層次選取器:如果想通過Dom元素之間的層次關係來擷取特定元素,例如後代元素,子項目,相鄰元素和同輩元素

       1)$("ancestor descendant") 獲得ancestor元素裡面的所有descendant(後代)元素,$("div span")選取<div>裡的所有的<span>元素

       2)$("parent>child") 選取parent元素下的child(子)元素,返回集合元素 $("div span")選取<div>元素下元素名為<span>的子項目

              註解:和$("ancestor descendant")有區別,$("ancestor descendant")選擇的是後代元素

       3)$("prev+next") 選取緊接在prev元素後的next元素,返回集合元素,$(".one+div")選取class為one的下一個<div>同輩元素

       4)$("prev~siblings") 選取prev元素之後的所有siblings元素,$("#two~div")選取Id為two的元素後面的所有<div>同輩元素

              註解:可以使用next()方法來替代$('prev+next')選取器  $(".one").next("div");可以使用nextAll()方法來替代$("prev~siblings")選取器 $("#two").nextAll(div)

  (3)過濾選取器:主要通過特定的過濾規則來篩選出所需要的Dom元素,按照不同的過濾規則,過濾選取器可以分為基本過濾,內容過濾,可見度過濾,屬性過濾,子項目過濾和表單對象屬性過濾選取器

       1)基本過濾選取器

              1)$(":first") 選取第一個元素,$("div:first")選取所有<div>元素中第一個<div>元素。

              2)$(":last")選取最後一個元素,$("div:last")選取所有<div>元素中最後一個<div>元素。

             3)$(":not(selector)")去除所有與給定選取器匹配的元素,$("input:not(.myClass)")選取class不是myClass的<input>元素。

              4)$(":even")選取索引是偶數的所有元素,索引從0開始,$("input:even")選取索引是偶數的<input>元素

              5)$(":odd")選取索引是奇數的所有元素,索引從0開始,$("input:odd")選取索引是奇數的<input>元素

              6)$(":eq(index)")選取索引等於index的元素,(index從0開始),$("input:eq(1)")選取索引等於1的<input>元素

              7)$(":gt(index)")選取索引大於index的元素,(index從0開始),$("input:gt(1)")選取索引大於1的<input>元素(大於1,而不包括1)

              8)$(":lt(index)")選取索引小於index的元素,(index從0開始),$("input:lt(1)")選取索引小於1的<input>元素(小於1,而不包括1)

              9)$(":header")選取所有的標題元素,例如:h1,h2,h3等等,$(":header")選取網頁中的所有的<h1>,<h2>,<h3>...

              10)$(":animated")選取當前正在執行動畫的所有元素,$("div:animated")選取正在執行動畫的<div>元素。

              11)$(":focus")選取當前擷取焦點的元素,$(":focus")選取當前擷取焦點的元素

       2)內容過濾選取器:主要體現在它所包含的子項目或者常值內容上面

              1)$(":contains(text)")選取含有文本為"text"的元素,$("div:contains('我')")選取含有文本"我"的<div>元素

              2)$(":empty")選取不包含子項目或者文本的空元素,$("div:empty")選取不包含子項目(包括文本元素)的<div>空元素

              3)$(":has(selector)")選取含有選取器所匹配的元素的元素,$("div:has(p)")選取含有<p>元素的<div>元素

              4)$(":parent")選取含有子項目或者文本的元素,$("div:parent")選取擁有子項目(包括文本元素)的<div>元素

       3)可見度過濾選取器:根據元素的可見和不可見狀態來選擇相應的元素

              1)$(":hidden")選取所有不可見的元素,$(":hidden")選取所有不可見的元素,包括<input type="hidden" />,

              <div style="display:none;">和<div style="visibility:hidden;">等元素。如果只想選取<input>元素,可以使用$("input:hidden")

              2)$(":visible")選取所有可見的元素,$("div:visible")選取所有可見的<div>元素

       4)屬性過濾選取器:通過元素的屬性來擷取相應的元素

              1)$("[attribute]")選取擁有此屬性的元素,$("div[id]")選取擁有屬性Id的<idv>元素。

              2)$("[attribute=value]")選取屬性的值為value的元素,$("div[title=test]")選取屬性title為"test"的<div>元素

              3)$("[attribute!=value]")選取屬性的值不等於value的元素,$("div[title!=test]")選取屬性title不等於"test"的<div>元素(注意:沒有屬性title的<div>元素也會被選取)

              4)$("[attribute^=value]")選取屬性的直以value開始的元素,$("div[title^=test]")選取屬性title以"test"開始的<div>元素

              5)$("[attribute$=value]")選取屬性的值以value結束的元素,$("div[title$=test]")選取屬性title以"test"結束的<div>元素

              6)$("[attribute*=value]")選取屬性的值含有value的元素,$("div[title*=test]")選取屬性title含有"test"的<div>元素

              7)$("[attribute|=value]")選取屬性等於給定字串或以給字串為首碼(該字串後跟一個連字號"-")的元素,$("div[title|="en"]")選取屬性title等於en或者以en為首碼(給字串後跟一個"-")的元素

              8)$("[attribute~=value]")選取屬性用空格分隔的值中包含一個給定值得元素,$("div[title~='uk']")選取屬性title用空格分隔的值中包含字元uk的元素

              9)$("[attribute1][attribute2][attribute3]")用屬性選取器合并成一個複合屬性選取器,滿足多個條件,每選擇一次,縮小一次範圍

                     $("div[id][title$='test']")選取擁有屬性id,並且屬性title以"test"結束的<div>元素

       5)子項目過濾選取器

              註解:子項目過濾選取器的過濾規則相對於其他的選取器稍微有些複雜,只要將元素的父元素和子項目區分清楚,使用起來還是相當簡單的

              1)$(":nth-child(idenx/even/odd/equation)")選取每個父元素下的第index個子項目或者奇偶元素(idnex從1算起)

                     :eq(index)只匹配一個元素,而:nth-child將為每一個父元素匹配子項目,並且:nth-child(index)的index是從1開始的,

                     而:eq(index)是從0開始的

              2)$(":first-child")選取每個父元素的第一個子項目,:first只返回單個元素,而:first-child選擇符將為每個父元素匹配第一個

                     子項目,例如:$("ul li:first-child");選取每個<ul>中的一個<li>元素

              3)$(":last-child")選取每個父元素的最後一個子項目,和上面一樣,:last只返回當個元素,而:last-child選擇符將為每個符永

                   元素匹配最後一個子項目,例如:$("ul li:first-child");選取每個<ul>中的最後一個<li>元素。

              4)$(":only-child")如果某個元素是它父元素中唯一的子項目,那麼將會被匹配,如果父元素中含有其他元素,這不會被匹配

                     $("ul li:only-child")在<ul>中選取是唯一子項目的<li>元素

              5):nth-child()選取器是很常用的子項目過濾器,詳細功能如下:

                     1)$(:nth-child(even))能選取每個父元素下的索引值是偶數的元素

                     2)$(:nth-child(odd))能選取到每個父元素下的索引值是奇數的元素

                     3)$(:nth-child(2))能選取到每個父元素下索引值等於2的元素

                     4)$(:nth-child(3n))能選取到每個父元素下索引值是3的倍數的元素(n從1開始)

                     5)$(:nth-child(3n+1))能選取每個父元素下索引值是(3n+1)的元素(n從1開始)

       6)表單對象過濾選取器:對所選擇的表單進行過濾

              1)$(:enabled)選取所有可用元素,$("#form :enabled");選取id為"form"的表單內的所有可用元素

              2)$(:disabled)選取所有停用元素,$("#form :enabled");選取id為"form"的表單內的所有不可用元素

              3)$(:checked)選取所有被選中的元素(單選框,複選框),$("input:checked")選取所有被選中的<input>元素

             4)$(:selected)選取所有被選中的選項元素(下拉式清單),$("select option:selected")選取所有被選中的選項元素

  (4)表單選取器:方便的擷取到表單的某個或者某類型的元素

       1)$(":input")選取所有的<input>,<textarea>,<select>,<button>元素

       2)$(":text")選取所有的單行文字框

       3)$(":password")選取所有的密碼框

       4)$(":radio")選取所有的單選框

       5)$(":checkbox")選取所有的多選框

       6)$(":submit")選取所有的提交按鈕

       7)$(":image")選取所有的映像按鈕

       8)$(":reset")選取所有的重設按鈕

       9)$(":button")選取所有的按鈕

       10)$(":file")選取所有的上傳域

       11)$(":hidden")選取所有的隱藏元素

4.選取器中的一些注意事項

  (1) 選取器中含有特殊符號的注意事項

       1)選取器中含有".","、","#","(","]"等特殊字元

              根據w3c的規定,屬性中是不能含有這些特殊字元的,但在實際項目中偶爾會遇到運算式中含有"#","."等特殊字元,如果按照普通的方式去處理的話可能會出現錯誤,解決此類錯誤是使用轉義符轉義

                   例如:<div id="id#b">韓迎龍</div><div id="id[1]">韓迎龍</div>,這時的取法是這樣的 $("#id\\#b"),$("#id\\[1\\]")                        

       2)屬性選取器的@符號問題

              在Jquery升級版本的過程中,jquery在1.3.1版本中徹底放棄了1.1.0版本遺留下來的@符號,加入你使用的是1.3.1以上的版本,

              那麼你不需要再屬性前添加@符號,例如:

              $("div[@title='test']"),正確的寫法就是去掉@符號,$(div[title='test'])

  (2)選取器中含有空格的注意事項

       選取器中的空格是不容忽視的,多一個空格或者少一個空格也許會得到截然不同的結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.