【jQuery從入門到精通】02-jQuery選擇器
阿新 • • 發佈:2021-08-29
jQuery選擇器
核心函式的使用
目錄
jQuery 選擇器
1、選擇器
說明
選擇器是jQuery
學習的重中之重,也就是對jQuery
- 選擇器本身只是一個有特定語法規則的字串,沒有實質用處
- 它的基本語法規則使用的就是 CSS 的選擇器語法,並對基進行了擴充套件
- 只有呼叫
$()
,並將選擇器作為引數傳入才能起作用 $(selector)
作用:根據選擇器規則在整個文件中查詢所有匹配的標籤的陣列(偽陣列),並封裝成jQuery
物件
分類
基本選擇器
- ID 選擇器:
#id
- 標籤選擇器:
element
- 屬性選擇器:
.class
- 通用選擇器:
*
- 並集選擇器:
selector1,selector2,selectorN
- 交集選擇器:
selector1selector2selectorN
層次選擇器
- 後代元素選擇器:
ancestor descendant
- 子元素選擇器:
parent > child
- 兄弟選擇器:
prev + next
、prev ~ siblings
過濾選擇器
在原有選擇器匹配的元素中進一步進行過濾的選擇器
選擇器語法中大部分是過濾選擇器
- 基本
- 內容
- 可見性
- 屬性
表單選擇器
- 表單
- 表單物件屬性
下面,我們對其中 常用的選擇器 進行一一學習
2、基本選擇器
基本選擇器 | 描述 |
---|---|
#id |
根據給定的ID匹配一個元素 |
element |
根據給定的元素名匹配所有元素 |
.class |
根據給定的類匹配元素 |
* |
匹配所有元素 |
selector1,selector2,selectorN |
將每一個選擇器匹配到的元素合併後一起返回 |
HTML 程式碼
<div id="div1" class="box">div1(class="box")</div>
<div id="div2" class="box">div2(class="box")</div>
<div id="div3">div3</div>
<span class="box">span(class="box")</span>
<br>
<ul>
<li>AAAAA</li>
<li title="hello">BBBBB(title="hello")</li>
<li class="box">CCCCC(class="box")</li>
<li title="hello">DDDDDD(title="hello")</li>
</ul>
ID 選擇器
// 1.選擇id為div1的元素
$('#div1').css('background-color', 'red');
標籤選擇器
// 2.選擇所有的div元素
$('div').css('background-color', 'red');
屬性選擇器
// 3.選擇所有class屬性為box的元素
$('.box').css('background-color', 'red');
並集選擇器
// 4.選擇所有的div和span元素
$('div,span').css('background-color', 'red');
交集選擇器
// 5.選擇所有class屬性為box的div元素
$('div.box').css('background-color', 'red');
通用選擇器
// 6.選擇所有元素
$('*').css('background-color', 'red');
3、層級選擇器
查詢子元素,後代元素,兄弟元素的選擇器
層級選擇器 | 描述 |
---|---|
ancestor descendant |
在給定的祖先元素下匹配所有的後代元素 |
parent > child |
在給定的父元素下匹配所有的子元素 |
prev + next |
匹配所有緊接在 prev 元素後的 next 元素 |
prev ~ siblings |
匹配 prev 元素之後的所有 siblings 元素 |
HTML 程式碼
<ul>
<li>AAAAA</li>
<li class="box">CCCCC</li>
<li title="hello"><span>BBBBB</span></li>
<li title="hello"><span class="box">DDDD</span></li>
<span>EEEEE</span>
</ul>
後代元素選擇器
// 1.選中ul下所有的span
$('ul span').css('background', 'red');
子元素選擇器
// 2.選中ul下所有的子元素span
$('ul > span').css('background', 'red');
兄弟選擇器
// 3.選中class為box的下一個li
$('.box + li').css('background', 'red');
// 4.選中ul下li的class為box的元素後面的所有兄弟元素
$('ul .box ~ *').css('background', 'red');
4、過濾選擇器
在原有選擇器匹配的元素中進行進一步過濾的選擇器
分類 | 過濾選擇器 | 描述 |
---|---|---|
基本 | :first |
獲取第一個元素 |
:last |
獲取最後一個元素 | |
:eq(index) |
匹配一個給定索引值的元素 | |
:gt(index) |
匹配所有大於給定索引值的元素 | |
:lt(index) |
匹配所有小於給定索引值的元素 | |
:even |
匹配所有索引值為偶數的元素,從 0 開始計數 | |
:odd |
匹配所有索引值為奇數的元素,從 0 開始計數 | |
:not(selector) |
去除所有與給定選擇器匹配的元素 | |
內容 | :contains(text) |
匹配包含給定文字的元素 |
:has(selector) |
匹配含有選擇器所匹配的元素的元素 | |
:empty |
匹配所有不包含子元素或者文字的空元素 | |
:parent |
匹配含有子元素或者文字的元素 | |
可見性 | :hidden |
匹配所有不可見元素,或者type為hidden的元素 |
:visible |
匹配所有的可見元素 | |
屬性 | [attribute] |
匹配包含給定屬性的元素 |
[attribute=value] |
匹配給定的屬性是某個特定值的元素 | |
[attribute!=value] |
匹配所有不含有指定的屬性,或者屬性不等於特定值的元素 | |
[attribute*=value] |
匹配給定的屬性是以包含某些值的元素 | |
[selector1][selector2][selectorN] |
複合屬性選擇器,需要同時滿足多個條件時使用 |
HTML 程式碼
<div id="div1" class="box">class為box的div1</div>
<div id="div2" class="box">class為box的div2</div>
<div id="div3">div3</div>
<span class="box">class為box的span</span>
<br/>
<ul>
<li>AAAAA</li>
<li title="hello">BBBBB</li>
<li class="box">CCCCC</li>
<li title="hello">DDDDDD</li>
<li title="two">BBBBB</li>
<li style="display: none">我本來是隱藏的</li>
</ul>
:first
// 1.選擇第一個div
$('div:first').css('background', 'red');
:last
// 2.選擇最後一個class為box的元素
$('.box:last').css('background', 'red');
:not
// 3.選擇所有class屬性不為box的div
$('div:not(.box)').css('background', 'red');
:eq、:gt、:lt
多個選擇器是依次執行的,不是同時執行的
// 4.選擇第二個和第三個li元素
// $('li:eq(1),li:eq(2)').css('background', 'red');
// $('li:gt(0):lt(2)').css('background', 'red');
$('li:lt(3):gt(0)').css('background', 'red');
:contains
// 5.選擇內容為BBBBB的li
$('li:contains("BBBBB")').css('background', 'red');
:hidden
// 6.選擇隱藏的li
$('li:hidden').show().css('background', 'red');
[attribute]
// 7.送擇有title屬性的li元素
$('li[title]').css('background', 'red');
[attribute=value]
// 8.選擇所有屬性title為hello的li元素
$('li[title=hello]').css('background', 'red');
:odd
$('#data tbody > tr:odd').css('backgroundColor', '#ccf');
5、表單選擇器
表單和表單物件屬性
表單選擇器 | 描述 |
---|---|
:input |
匹配所有 input, textarea, select 和 button 元素 |
:text |
匹配所有的單行文字框 |
:password |
匹配所有密碼框 |
:radio |
匹配所有單選按鈕 |
:checkbox |
匹配所有複選框 |
:submit |
匹配所有提交按鈕 |
:reset |
匹配所有重置按鈕 |
:button |
匹配所有按鈕 |
表單物件屬性 | 描述 |
:enabled |
匹配所有可用元素 |
:disabled |
匹配所有不可用元素 |
:checked |
匹配所有選中的被選中元素(複選框、單選框等,不包括select中的option) |
:selected |
匹配所有選中的option元素 |
HTML程式碼
<form>
使用者名稱:<input type="text"/><br>
密碼:<input type="password"/><br>
愛好:
<input type="checkbox" checked="checked"/>籃球
<input type="checkbox" checked="checked"/>足球
<input type="checkbox" checked="checked"/>羽毛球<br>
性別:
<input type="radio" name="sex" value='male'/>男
<input type="radio" name="sex" value='female'/>女<br>
郵箱:<input type="text" name="email" disabled="disabled"/><br>
所在地:I
<select>
<option value="1">北京</option>
<option value="2" selected="selected">天津</option>
<option value="3">河北</option>
</select><br>
<input type="submit" value="提交"/>
</form>
:text、:disabled
// 1.選擇不可用的文字輸入框
$(':text:disabled').css('background-color', 'red');
:submit、:checkbox、:checked
// 3.顯示選擇的城市名稱
$(':submit').click(function () {
alert($('select>option:selected').html());
});