jQuery (一、基本選擇器)
目標:
1、瞭解jQuery有哪些選擇器
2、熟悉基本選擇器、層級選擇器和屬性選擇器的使用
大綱:
一、 jQuery選擇器簡介
1) jQuery是一個以css選擇器為核心的JavaScript庫
2) jQuery支援css規範1到3的幾乎所有選擇器
3) 它降低了學習的門檻
4) 編碼時。我們往往需要首先使用選擇器選擇元素,然後再對其進行操作
二、 jQuery選擇器的分類
1) 基本選擇器
2) 層級選擇器
3) 屬性選擇器
4) 過濾選擇器
5) 表單選擇器
1、 基本選擇器
1)#id 這就是id選擇器,舉例:
$(‘#aa’)它將會返回id值為aa的第一個元素的jQuery物件
注意:如果文件中包含多個id值為aa的元素,它也只會返回第一個
2)element這就是元素選擇器,舉例:
$(‘button’)它將會返回文件中所有button元素的jQuery物件
3).class這就是類選擇器,舉例:
$(‘.cc’)它將會返回所有的class屬性值為cc的元素jQuery物件
4)* 這就是通配選擇器,舉例:
$(‘*’)它將返回文件中所有的元素
5)selector1, selector1, selectorN 這就是群組選擇器,舉例:
$(‘#aa,.cc’)它將返回id值為aa的第一元素,並且會返回class屬性值為cc的所有元素
2、層級選擇器
1) ancestor descendant後代選擇器,例如:
$(‘.sports.football’)它將返回class為sports的元素後代中所有的class為football的元素
2) Parent>child子選擇器,例如:
$(‘.sports>li’)它將返回class為sports的子元素中所有的li元素
3)prev + next緊接下一個元素選擇器,例如:
$(‘.sports+li’)它將返回class為sports的緊接著的下一個li元素
5)prev~siblings 選擇以後的所有兄弟元素,例如:
$(‘.sports~li’)它將返回class為sports的兄弟元素中的li元素
3、 屬性選擇器
1)[attribute] 選取包含某個屬性的元素,例如:
$(‘[type]’)它將返回包含屬性type的所有元素
2)[attribute] 選取屬性值為特定值的元素,例如:
$(‘[type=”ccc”]’)它將返回屬性type的值為ccc的所有元素
3)[attribute!=value] 選取屬性值不為特定值的元素,例如:
$(‘[type !=“aaa”]’)它將返回屬性type的值不為aaa的所有元素
4)[attribute^=value] 選取屬性值以某個值開頭的元素,例如:
$(‘[type^=“ccc”]’)它將返回屬性type的值以cc開頭的所有元素
5)[attribute$=value] 選取屬性值以某個值結尾的元素,例如:
$(‘[type$=“ee”]’)它將返回屬性type的值以ee結尾的所有元素
6)[attribute*=value] 選取屬性值包含某個值的元素,例如:
$(‘[type*=“o”]’)它將返回屬性type的值中包含o的所有元素
7)[attrSel1][attrSel2][attrSelN] 選取同時符合多個條件的元素,例如:
$(‘[class][type^=”c”]’) 它將返回有class屬性,並且type屬性值以c開頭的所有元素
4、過濾選擇器
A、基本過濾選擇器
1):first 選取第一個元素,例如:
$(‘tr:first’)返回第一個tr元素
2):last選取最後一個元素,例如:
$(‘tr:last’)返回最後一個tr元素
3):not(selector)去除與給定選擇器匹配的元素,例如:
$(‘tr:not(“.new”)’)首先選擇所有的tr元素,然後取出其中包含class值為new的tr元素
4):even選取索引值為偶數的元素,例如:
$(‘tr:even’)返回索引值為偶數的所有tr元素
5):odd 選取索引值為奇數的元素,例如:
$(‘tr:odd’)返回索引值為奇數的所有tr元素
6):eq(index)選取索引值為特定值的元素,例如:
$(‘tr:eq(0)’)返回索引值為0的tr元素,實際上與$(‘tr:first’)效果一樣
7):gt(index)選取索引值大於某個特定值的元素,例如:
$(‘tr:gt(1)’)返回索引值大於1的所有tr元素
8):lt(index)選取索引值小於某個特定值的所有元素, 例如:
$(‘tr:lt(1)’)返回索引值小於1的所有tr元素
9):header選擇<h1>~<h6>標籤,例如:
$(‘:header’)返回文件中<h1>~<h2>所有元素
10):animated選取執行的動畫元素
11):focus選取當前獲得焦點的元素
B、內容過濾選擇器
1) :contains(text)選取包含某個特定文字的元素,例如:
$(‘td:contains(“日本”)’)返回文字中包含“日本”的td元素
2):empty選取不包含任何子元素或者文字的空元素,例如:$(‘:empty’)返回空元素
3):has(selector)選取包含選擇器所匹配的元素的元素。例如:$(‘tr:has(“th”)’)返回包含th元素的tr元素
4):parent選取包含子元素或者文字的元素,例如:
$(‘:parent’)返回非空元素
C、可見性過濾選擇器
1):hidden選取隱藏的元素,例如:
$(‘tr:hidden’)返回隱藏的tr元素
2):visible選取顯示的元素,例如:
$(‘tr:visible)返回未隱藏的tr元素
D、子元素過濾選擇器
1):nth-child選取特定位置的子元素,例如:
$(‘tr:nth-child(1)’)返回第一個子元素
注意:nth-child是jQuery中唯一一個從1開始計數的選擇器
2):first-child選取每個父元素中的第一個子元素,例如:
$(‘tabletr:first-child’)返回每個table的第一個tr
3):last-child選取每個父元素的最後一個子元素,例如:
$(‘table tr:last-child’)返回每個table的最後一個tr
4):only-child如果元素是其父元素的唯一子元素,該元素將被返回,例如:
$(‘tr td:only-child’)返回具有唯一子元素的td
5、表單選擇器
A、表單元素選擇器
1):input 選取input、textarea、select和button元素
2):text選取所有的單行文字框<input type=”text”>
3):password選取所有的密碼框
<input type=”password”>
4):radio選取所有的單選按鈕
5);checkbox選取所有的複選框
6):submit選取所有的提交按鈕
7):image選取所有的影象域
8):reset選取所有的重置按鈕
9):button選取所有的按鈕
10):file選取所有的檔案域
11):hidden選取所有的隱藏域
B、表單屬性選擇器
1):enabled選取所有的可用元素
2):disabled選取所有的不可用元素
3):checked選取所有的處於選中狀態的單選框和複選框
4):selected選取所有的處於選中狀態的option元素
//程式碼DEMO
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" >
<title>jQuery</title>
<script type="text/javascript" src="jquery.min.js"></script>
<style>
table{
margin-right:auto;
margin-left:auto;
margin-bottom:30px;
}
span,h1,h2{
display:block;
text-align:center;
font-size:20px;
}
td {
padding:6px;
margin-bottom:5px;
}
</style>
<script>
$(document).ready(function () {
$('button').click(function () {
//$('table:first').css('color', 'red');
//$('tr:last').css('color', 'red');
//$('table:first tr:last').css('color', 'red');
//$('tr:not(".head")').css('color', 'red');
//$('tr:even').css('color', 'red');
//$('tr:odd').css('color', 'red');
//$('tr:eq(2)').css('color', 'red');
//$('tr:gt(2)').css('color', 'red');
$(':header').css('color', 'red');
});
});
</script>
</head>
<body>
<button>按鈕</button>
<h1>旅遊服務的商品列表</h1>
<span>旅遊服務的商品列表</span>
<table>
<tr class="head">
<th>商品名</th>
<th>價格</th>
<th>已銷售</th>
</tr>
<tr>
<td>泰國普吉島一週遊</td>
<td>5000¥</td>
<td>1000</td>
</tr>
<tr>
<td>泰國曼谷一週遊</td>
<td>4000¥</td>
<td>2000</td>
</tr>
<tr>
<td>柬埔寨一週遊</td>
<td>4000¥</td>
<td>2350</td>
</tr>
<tr>
<td>新加坡一週遊</td>
<td>1000¥</td>
<td>10</td>
</tr>
<tr>
<td>馬來西亞一週遊</td>
<td>2000¥</td>
<td>100</td>
</tr>
</table>
<h2>旅遊紀念品的商品列表</h2>
<span>旅遊紀念品的商品列表</span>
<table>
<tr class="head">
<th>商品名</th>
<th>價格</th>
<th>已銷售</th>
</tr>
<tr>
<td>中國國旗</td>
<td>2¥</td>
<td>1000</td>
</tr>
<tr>
<td>泰國雕塑</td>
<td>200¥</td>
<td>500</td>
</tr>
<tr>
<td>釣魚島勳章</td>
<td>10¥</td>
<td>50000</td>
</tr>
<tr>
<td>馬來西亞國徽</td>
<td>5¥</td>
<td>500</td>
</tr>
</table>
</body>
</html>