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 |