jQuery 選擇器大體上可分為:基本選擇器、層次選擇器、過濾選擇器、表單選擇器。 其中過濾選擇器可以分為:簡單過濾選擇器、内容過濾選擇器、可見性過濾選擇器、屬性過濾選擇器、子元素過濾選擇器、表單對象屬性過濾選擇器。選擇器是jQuery最基礎的東西,下面向大家介紹jquery+%D1%A1%D4%F1%C6%F7/" target="_blank">jquery 選擇器的用法
選擇器是jQuery的核心組成部分,因為使用jQuery操作DOM時所做的每件事都和選擇器密切相關——總得先選取元素才可進行下一步。jQuery使用常見的CSS選擇器和XPATH選擇器,它們為絕大多數Web設計師和開發者所熟悉。除此之外,還有一些jQuery自定義的選擇器。 正是這些選擇器使得jQuery分外靈活,易于學習。了解選擇器如何工作,才能為充分利用jQuery的強大功能打好堅實基礎。 在那些CSS選擇器力不從心的場合,過濾器可以讓你更靈活地根據DOM特性選取元素。人們常常結合使用過濾器和選擇器,以便在基于某一标準選擇特定元素時進行深度控制,比如需要根據元素在一組元素中的位置,或元素的可見性,或表單元素的某些屬性(如選中/未選中或是否被禁用)選取元素時。jQuery提供了一系列為Dom元素添加、删除CSS類或直接設定樣式的方法。
基本選擇器
1. id選擇器(指定id元素)
将id="one"的元素背景色設定為黑色。(id選擇器返單個元素)
$(document).ready(function () {
$(\'#one\').css(\'background\', \'#000\');
});2. class選擇器(周遊css類元素)
将class="cube"的元素背景色設為黑色
$(document).ready(function () {
$(\'.cube\').css(\'background\', \'#000\');
});3. element選擇器(周遊html元素)
将p元素的文字大小設定為12px
$(document).ready(function () {
$(\'p\').css(\'font-size\', \'12px\');
});4. * 選擇器(周遊所有元素)
$(document).ready(function () {
// 周遊form下的所有元素,将字型顔色設定為紅色
$(\'form *\').css(\'color\', \'#FF0000\');
});5. 并列選擇器
$(document).ready(function () {
// 将p元素和div元素的margin設為0
$(\'p, div\').css(\'margin\', \'0\');
});
層疊選擇器:
$("form input") 選擇所有的form元素中的input元素
$("#main > *") 選擇id值為main的所有的子元素
$("label + input") 選擇所有的label元素的下一個input元素節點,經測試選擇器傳回的是label标簽後面直接跟一個input标簽的所有input标簽元素
$("#prev ~ div") 同胞選擇器,該選擇器傳回的為id為prev的标簽元素的所有的屬于同一個父元素的div标簽
過濾選擇器
基本過濾選擇器:
$("tr:first") 選擇所有tr元素的第一個
$("tr:last") 選擇所有tr元素的最後一個
$("input:not(:checked) + span") 過濾掉:checked的選擇器的所有的input元素
$("tr:even") 選擇所有的tr元素的第0,2,4... ...個元素(注意:因為所選擇的多個元素時為數組,是以序号是從0開始)
$("tr:odd") 選擇所有的tr元素的第1,3,5... ...個元素
$("td:eq(2)") 選擇所有的td元素中序号為2的那個td元素
$("td:gt(4)") 選擇td元素中序号大于4的所有td元素
$("td:ll(4)") 選擇td元素中序号小于4的所有的td元素
内容過濾選擇器:
$("div:contains(\'John\')") 選擇所有div中含有John文本的元素
$("td:empty") 選擇所有的為空(也不包括文本節點)的td元素的數組
$("div:has(p)") 選擇所有含有p标簽的div元素
$("td:parent") 選擇所有的以td為父節點的元素數組
可視化過濾選擇器:
$("div:hidden") 選擇所有的被hidden的div元素
$("div:visible") 選擇所有的可視化的div元素
屬性過濾選擇器:
$("div[id]") 選擇所有含有id屬性的div元素
$("input[name=\'newsletter\']") 選擇所有的name屬性等于\'newsletter\'的input元素
$("input[name!=\'newsletter\']") 選擇所有的name屬性不等于\'newsletter\'的input元素
$("input[name^=\'news\']") 選擇所有的name屬性以\'news\'開頭的input元素
$("input[name$=\'news\']") 選擇所有的name屬性以\'news\'結尾的input元素
$("input[name*=\'man\']") 選擇所有的name屬性包含\'news\'的input元素
$("input[id][name$=\'man\']") 可以使用多個屬性進行聯合選擇,該選擇器是得到所有的含有id屬性并且那麼屬性以man結尾的元素
子元素過濾選擇器:
$("div span:first-child") 傳回所有的div元素的第一個子節點的數組
$("div span:last-child") 傳回所有的div元素的最後一個節點的數組
$("div button:only-child") 傳回所有的div中隻有唯一一個子節點的所有子節點的數組
表單元素選擇器:
$(":input") 選擇所有的表單輸入元素,包括input, textarea, select 和 button
$(":text") 選擇所有的text input元素
$(":password") 選擇所有的password input元素
$(":radio") 選擇所有的radio input元素
$(":checkbox") 選擇所有的checkbox input元素
$(":submit") 選擇所有的submit input元素
$(":image") 選擇所有的image input元素
$(":reset") 選擇所有的reset input元素
$(":button") 選擇所有的button input元素
$(":file") 選擇所有的file input元素
$(":hidden") 選擇所有類型為hidden的input元素或表單的隐藏域
表單元素過濾選擇器:
$(":enabled") 選擇所有的可操作的表單元素
$(":disabled") 選擇所有的不可操作的表單元素
$(":checked") 選擇所有的被checked的表單元素
$("select option:selected") 選擇所有的select 的子元素中被selected的元素
下面拿張表給大家參考
選擇器 | 描述 | 傳回 | 示例 |
基本選擇器 | |||
#id | 根據給定的id比對一個元素 | 單個元素 | $("#test")選取id為test的元素 |
.class | 根據給定的類名比對元素 | 集合元素 | $(".test")選取class為test的元素 |
element | 根據給定的元素名比對元素 | 集合元素 | $("p")選取所有的p元素 |
* | 比對所有元素 | 集合元素 | $("*")選取所有元素 |
selector1,selector2,.....,selectorN | 将每一個選擇器比對到的元素合并後一起傳回 | 集合元素 | $("div,span,p.myClass")選取所有div,span和擁有class為myClass的p标簽的一組元素 |
層次選擇器 | |||
$("ancestor descendant") | 選取ancestor元素裡的所有descendant(後代)元素 | 集合元素 | $("div span")選取所有div裡的所有的span元素 |
$("parent > child") | 選取parent元素下的child(子)元素,與$("ancestor descendant")有差別,$("ancestor descendant")選擇的是後代元素 | 集合元素 | $("div>span")選取div元素下的名是span的子元素 |
$("prev + next") | 選取緊接在prev元素後的next元素 | 集合元素 | $(".one+div")選取class為one的下一個div元素 |
$("prev~siblings") | 選取prev元素之後的所有siblings元素 | 集合元素 | $("#two~div")選取id為two的元素後面的所有div兄弟元素 |
基本過濾選擇器 | |||
:first | 選取第一個元素 | 單個元素 | $("div:first")選取所有div元素中的第一個div元素 |
:last | 選取最後一個元素 | 單個元素 | $("div:last")選取所有div元素中的最後一個div元素 |
:not(selector) | 去除所有與給定選擇器比對的元素 | 集合元素 | $("input:not(.myclass)")選取class不是myclass的元素 |
:even | 選取索引是偶數的所有元素,索引是從0開始 | 集合元素 | $("input:event")選取索引是偶數的input元素 |
:odd | 選取索引是奇數的所有元素,索引是從0開始 | 集合元素 | $("input:odd")選取索引是奇數的input元素 |
:eq(index) | 選取索引等于index的元素(index從0開始) | 集合元素 | $("input:eq(1)")選取索引等于1的input元素 |
:gt(index) | 選取索引大于index的元素(index從0開始) | 集合元素 | $("input:gt(1)")選取索引大于1的input元素(注:大于1,而不包括1) |
:lt(index) | 選取索引小于index的元素(index從0開始) | 集合元素 | $("input:lt(1)")選取索引大于1的input元素(注:小于1,而不包括1) |
:header | 選取所有的标題元素,例如h1,h2,h3等 | 集合元素 | $(":header")選取網頁中所有的h1,h2,h3... |
:animated | 選取目前正在執行動畫的所有元素 | 集合元素 | $("div:animted")選取正在執行動畫的div元素 |
内容過濾選擇器 | |||
:contains(text) | 選取文本内容為"text"的元素 | 集合元素 | $("div:contains(\'我\')")選取含有文本"我"的div元素 |
:empty | 選取不包含子元素或者文本的空元素 | 集合元素 | $(div:empty)選取不包含資源(包括文本元素)的div空元素 |
:has(selector) | 選取含有選擇器所比對的元素的元素 | 集合元素 | $("div:has(p)")選取含有p元素的div元素 |
:parent | 選取含有子元素或者文本的元素 | 集合元素 | $("div:parent")選取擁有子元素(包括文本元素)的div元素 |
可見性過濾選擇器 | |||
:hidden | 選取所有不可見的元素 | 集合元素 | $(":hidden")選取所有不可見的元素。包括《input type="hidden"/》,《div style="display:none"》和《div style="visibility:hidden"》等元素。如果隻想選取《input》元素,可以使用$("input:hidden") |
:visible | 選取所有可見的元素 | 集合元素 | $("div:visible")選取所有可見的div元素 |
屬性過濾選擇器 | |||
[attribute] | 選取擁有此屬性的元素 | 集合元素 | $("div[id]")選取擁有屬性id的元素 |
[attribute=value] | 選取屬性的值為value的元素 | 集合元素 | $("div[title=test]")選取屬性title為test的div元素 |
[attribute!=value] | 選取屬性的值不等于value的元素 | 集合元素 | $("div[title!=test]")選取屬性title不等于"test"的divy元素(注意:沒有屬性title的div元素也會被選取) |
[attribute^=value] | 選取屬性的值以value開始的元素 | 集合元素 | $("div[title^=test]")選取屬性title以"test"開始的div元素 |
[attribute$=value] | 選取屬性的值以value結束的元素 | 集合元素 | $("div[title$=test]")選取屬性title以"test"結束的div元素 |
[attribute*=value] | 選取屬性的值含有value的元素 | 集合元素 | $("div[titel*=test]")選取屬性title含有\'test\'的div元素 |
[selector1][selector2][selectorN] | 用屬性選擇器合并成一個複合屬性選擇器,滿足多個條件。每選擇一次,縮小一次範圍。 | 集合元素 | $("div[id][title$=\'test\']")選取擁有屬性id,并且屬性title以"test"結束的div元素 |
子元素過濾選擇器 | |||
:nth-child(index/event/odd/equation) | 選取每個父元素下的第index個子元素或者奇偶元素.(index從1算起) | 集合元素 | :eq(index)隻比對一個元素,而:nth-child将為每一個父元素比對元素,并且:nth-child(index)的index是從1開始的,而:eq(index)是從0算起的 |
:frist-child | 選取每個父元素的第一個子元素 | 集合元素 | :first隻傳回單個元素,而:first-child選擇符将為每個父元素比對第一個子元素。例如$("ul li:first-child");選取每個ul中的第一個li元素 |
:last-child | 選取每個父元素的最後一個子元素 | 集合元素 | 同樣,:last隻傳回單個元素,而:last-child選擇符将為每個父元素比對最後一個子元素。例如$("ul li:last-child");選擇每個ul中的最後一個li元素 |
:only-child | 如果某個元素是它父元素中唯一的子元素,那麼将會被比對。如果父元素中含有其他元素,則不會被比對 | 集合元素 | $(ul li:only-child)在ul中選取是唯一子元素的li元素 |
表單對象屬性過濾選擇器 | |||
:enabled | 選取所有可用元素 | 集合元素 | $("#form1 :enabled")選取id為"form1"的表單内的所有可用元素 |
:disabled | 選取所有不可用元素 | 集合元素 | $("#form2:disabled")選取id為"form2"的表單内的所有不可用元素 |
:checked | 選取所有被選中的元素(單選框,複選框) | 集合元素 | $("input :checked")選取所有被選中的input元素 |
:selected | 選取所有被選中的選項元素(下拉清單) | 集合元素 | $("select:selected");選取所有被選中的選項元素 |
表單對象屬性過濾選擇器 | |||
集合元素 | 集合元素 | 集合元素 | 集合元素a |
插入節點的方法
方法 | 描述 | 示例 |
append() | 向每個比對的元素内部追加内容 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("p").append("《b》你好《/b》"); 結果: 《p》我想說:《b》你好《/b》《/p》 |
appendTo() | 将所有比對的元素追到到指定的元素中。實際上,使用該方法是颠倒了正常$(A).append(B)的操作,既不是将B追到到A中,而是将A追加到B中 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $(《b》你好《/b》).appendTo("p"); 結果: 《p》我想說:《b》你好《/b》《/p》 |
prepend() | 像每個比對的元素内部前置内容 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("p").prepend("《b》你好《/b》"); 結果: 《p》《b》你好《/b》我想說:《/p》 |
prependTo() | 将所有比對的元素前置到指定的元素中。實際上,使用該方法是颠倒了正常的$(A).prepend(B)的操作,既不是将B前置到A中,而是将A前置到B中 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("《b》你好《/b》").prependTo("P"); 結果: 《p》《b》你好《/b》我想說:《/p》 |
after | 在每個比對的元素之後插入内容 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("p").after("《b》你好《/b》"); 結果: 《p》我想說:《/p》《b》你好《/b》 |
insertAfter() | 将所有比對的元素插入到指定元素的後面。實際上使用該方法是颠倒了正常的$(A).after(B)的操作,既不是将B插入到A後面,而是将A插入到B後面 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("《b》你好《/b》").insertAfter("p"); 結果: 《p》我想說:《/p》《b》你好《/b》 |
before() | 在每個比對的元素之前插入内容 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("p").before("《b》你好《/b》"); 結果: 《b》你好《/b》《p》我想說:《/p》 |
insertBefore() | 将所有比對的元素插入到指定的元素的前面。實際上,使用該方法是颠倒了正常的$(A).before(B)的操作,既不是将B插入到A前面,而是将A插入到B前面 | HTML代碼: 《p》我想說《/p》 jQuery代碼: $("《b》你好《/b》").insertBefore("p"); 結果: 《b》你好《/b》《p》我想說:《/p》 |
load()方法參數解釋
參數名稱 | 類型 | 說明 |
url | String | 請求HTML頁面的URL位址 |
data(可選) | Object | 發送至伺服器的key/value資料 |
callback(可選) | Function | 請求完成時的回調函數,無論請求成功或者失敗 |
$.get()方法參數解釋
參數名稱 | 類型 | 說明 |
url | String | 請求的HTML頁的URL位址 |
data(可選) | Object | 發送至伺服器的key/value資料會作為QueryString附加到請求URL中 |
callback(可選) | Function | 載入成功時回調函數(隻有當Response的傳回狀态是success才調用該方法)自動将請求結果和狀态傳遞給該方法 |
type(可選) | String | 伺服器傳回内容的格式,包括xml.html.script.json.text和_default |
