1. 程式人生 > 其它 >【jQuery從入門到精通】02-jQuery選擇器

【jQuery從入門到精通】02-jQuery選擇器

jQuery選擇器

筆記來源:尚矽谷jQuery教程(jquery從入門到精通)

目錄

jQuery 選擇器

1、選擇器

說明

選擇器是jQuery學習的重中之重,也就是對jQuery

核心函式的使用

  • 選擇器本身只是一個有特定語法規則的字串,沒有實質用處
  • 它的基本語法規則使用的就是 CSS 的選擇器語法,並對基進行了擴充套件
  • 只有呼叫$(),並將選擇器作為引數傳入才能起作用
  • $(selector)作用:根據選擇器規則在整個文件中查詢所有匹配的標籤的陣列(偽陣列),並封裝成jQuery物件

分類

基本選擇器

  • ID 選擇器:#id
  • 標籤選擇器:element
  • 屬性選擇器:.class
  • 通用選擇器:*
  • 並集選擇器:selector1,selector2,selectorN
  • 交集選擇器:selector1selector2selectorN

層次選擇器

  • 後代元素選擇器:ancestor descendant
  • 子元素選擇器:parent > child
  • 兄弟選擇器:prev + nextprev ~ 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());
});