jQuery 選擇器使用方法

id選擇器(指定id元素)

id="divOne" 的元素背景色設置為紅色。(id選擇器返單個元素)

$('#divOne').css('background', 'red');

class選擇器(遍歷css類元素)

class="divTwo" 的元素背景色設為藍色

$('.divTwo').css('background', 'blue');

element選擇器(遍歷html元素)

將p元素的文字設置為粉色

$('p').css('color', 'pink');

* 選擇器(遍歷所有元素)

將ul下的所有元素字體設置成黃色

$('ul *').css('color', 'yellow');

並列選擇器

id = spanOneclass = 'pTwo' 的字體設置成藍色

$('#spanOne,.pTwo').css('color', 'blue');

示例程式碼整體效果如下:

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>    	</head>  	<body>  		<div id="divOne" style="height: 100px; width: 100px;"></div>  		<div class="divTwo" style="height: 100px; width: 100px;"></div>    		<p>element選擇器(遍歷html元素)</p>  		<p>將p元素的文字設置為粉色</p>    		<ul>  			<li>One</li>  			<li>Two</li>  			<li>Three</li>  		</ul>    		<p id="spanOne"> spanOne </p>  		<p class="pTwo"> pTwo </p>  		<p id="spanOne" class="pTwo"> spanOne And pTwo</p>  	</body>    	<script>  		$('#divOne').css('background', 'red');  		$('.divTwo').css('background', 'blue');  		$('p').css('color', 'pink');  		$('ul *').css('color', 'yellow');  		$('#spanOne,.pTwo').css('color', 'blue');  	</script>  </html>

parent > child(直系子元素)

$('#divOne > p').css('color', 'blue');

下面的程式碼,只有外層段落的字體會改變顏色,裡層不會,因為裡層是屬於 divInner 的直系元素

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divOne">  			<p>外層段落一</p>  			<p>外層段落二</p>  			<p>外層段落三</p>  			<div id="divInner">  				<p>裡層段落一</p>  				<p>裡層段落二</p>  				<p>裡層段落三</p>  			</div>  		</div>  	</body>    	<script>  		$('#divOne > p').css('color', 'blue');  	</script>  </html>

prev + next(下一個兄弟元素,等同於next()方法)

$('#divTwo + ul').css('color', 'red');

下面的程式碼,只有 id 為 divTwo 元素的下一個兄弟元素 ul 會變色,這裡是序列1-*

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divTwo">    		</div>  		<ul>  			<li>序列1-1</li>  			<li>序列1-2</li>  			<li>序列1-3</li>  		</ul>  		<ul>  			<li>序列2-1</li>  			<li>序列2-2</li>  			<li>序列2-3</li>  		</ul>  	</body>    	<script>  		$('#divTwo + ul').css('color', 'red');  	</script>  </html>

prev ~ siblings(prev元素的所有兄弟元素,等同於nextAll()方法)

$('#divThree ~ span').css('color', 'red');

下面的程式碼,兄弟一到三會變色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divThree">    		</div>  		<span>兄弟一</span>  		<span>兄弟二</span>  		<span>兄弟三</span>  	</body>    	<script>  		$('#divThree ~ span').css('color', 'red');  	</script>  </html>

基本過濾選擇器

:first 和 :last (取第一個或最後一個元素)

$('#divOne ul li :first').css('color', 'red');  $('#divOne ul li :last').css('color', 'blue');

下面的程式碼,序列1-1(first元素)和序列1-3(last元素)會變色(高版本中不支援)

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divOne">  			<ul>  				<li>序列1-1</li>  				<li>序列1-2</li>  				<li>序列1-3</li>  			</ul>  		</div>  	</body>    	<script>  		$('#divOne ul li :first').css('color', 'red');  		$('#divOne ul li :last').css('color', 'blue');  	</script>  </html>

:not(取非元素)

$('div:not(#divOne)').css('color', 'red');

下面的程式碼,divTwo 和 divThree 會變色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divOne">  			divOne  		</div>  		<div id="divTwo">  			divTwo  		</div>  		<div class="divThree">  			divThree  		</div>    	</body>    	<script>  		$('div:not(#divOne)').css('color', 'red');  	</script>  </html>

:even和:odd(取偶數索引或奇數索引元素,索引從0開始,even表示偶數,odd表示奇數)

$('tr:even').css('background', 'red'); // 偶數行顏色  $('tr:odd').css('background', 'blue'); // 奇數行顏色

偶數行行顏色為紅色(第一行的索引為0),奇數為藍色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<table border="1">  		  <tr>  		    <th>Month</th>  		    <th>Savings</th>  			<th>Name</th>  		  </tr>  		  <tr>  		    <td>January</td>  		    <td>$100</td>  			<td>LinBingWen</td>  		  </tr>  		    <tr>  		    <td>Feb</td>  		    <td>$200</td>  			<td>test</td>  		  </tr>  		    <tr>  		    <td>Jna</td>  		    <td>$2300</td>  			<td>kkk</td>  		  </tr>  		    </tr>  		    <tr>  		    <td>Nev</td>  		    <td>$800</td>  			<td>cdf</td>  		  </tr>  		    </tr>  		    <tr>  		    <td>few</td>  		    <td>$300</td>  			<td>ggg</td>  		  </tr>  		    </tr>  		    <tr>  		    <td>Oct</td>  		    <td>$300</td>  			<td>ccc</td>  		  </tr>  		</table>  	</body>    	<script>  		$('tr:even').css('background', 'red'); // 偶數行顏色  		$('tr:odd').css('background', 'blue'); // 奇數行顏色  	</script>  </html>

:eq(x) (取指定索引的元素)

$('tr:eq(2)').css('background', 'yellow'); // 表格第二行變色

:gt(x)和:lt(x)(取大於x索引或小於x索引的元素)

$('#divFour ul li:gt(2)').css('color', 'red');  $('#divFour ul li:lt(2)').css('color', 'blue');

序列4-0到4-1是紅色,4-3到4-4為藍色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<span id="divFour">  			<ul>  				<li>序列4-0</li>  				<li>序列4-1</li>  				<li>序列4-2</li>  				<li>序列4-3</li>  				<li>序列4-5</li>  			</ul>  		</span>  	</body>    	<script>  		$('#divFour ul li:gt(2)').css('color', 'red');  		$('#divFour ul li:lt(2)').css('color', 'blue');  	</script>  </html>

:header(取H1~H6標題元素)

$(':header').css('background', 'pink');

H1~H6的背景色都會成粉色

內容過濾選擇器

:contains(text)(取包含text文本的元素)

$('#divOne span:contains("兄弟1-1")').css('color', 'red');

下面的程式碼,兄弟1-1會變色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divOne">  			<span>兄弟1-1</span>  			<span>兄弟1-2</span>  			<span>兄弟1-3</span>  		</div>  	</body>    	<script>  		$('#divOne span:contains("兄弟1-1")').css('color', 'red');  	</script>  </html>

:empty(取不包含子元素或文本為空的元素)

$('#divTwo span:empty').html('沒有內容').css('color', 'red');

下面第span顯示」沒有內容」文本

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divTwo">  			<span></span><br />  			<span></span><br />  			<span></span><br />  		</div>  	</body>    	<script>  		$('#divTwo span:empty').html('沒有內容').css('color', 'red');  	</script>  </html>

:has(selector)(取選擇器匹配的元素)

$('#divThree:has(h1)').css('border', '1px solid #000'); // 為包含h1元素的div添加邊框

為包含h1元素的div添加邊框

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<div id="divThree">  			<h1>我是標題一</h1>  			<span>我是span</span>  		</div>  	</body>    	<script>  		$('#divThree:has(h1)').css('border', '1px solid #000'); // 為包含h1元素的div添加邊框  	</script>  </html>

:parent(取包含子元素或文本的元素)

$('ol li:parent').css('border', '1px solid #000');

下面的程式碼,序列1和序列2所在的li會有邊框

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>  	</head>  	<body>  		<ol>  			<li>序列1</li>  			<li></li>  			<li></li>  			<li>序列2</li>  		</ol>  	</body>    	<script>  		$('ol li:parent').css('border', '1px solid #000');  	</script>  </html>

可見性過濾選擇器

:hidden(取不可見的元素)

jQuery至1.3.2之後的:hidden選擇器僅匹配 display:none<input type="hidden" /> 的元素,而不匹配 visibility: hiddenopacity:0 的元素。這也意味著hidden只匹配那些「隱藏的」並且不佔空間的元素,像 visibility:hiddenopactity:0 的元素佔據了空間,會被排除在外。

:visible(取可見的元素)

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.min.js"></script>  	</head>  	<body>  		<button id = "buttonOne" style = "width:100px; height:45px;">點我改變顏色</button>  			<div class="div-1" style = 'display: none'>div-1</div>  			<div class="div-2" >div-2</div>  			<input type="hidden" value="hello"/>  	</body>    	<script>  		/*  		*DOM載入完全成執行  		*/  		$(function() {  			 $('#buttonOne').click(function(){  				 $('div:visible').css({'background':'blue','height':'20px'}); // div-2  				 $('div:hidden').show().css({'background':'red','height':'20px'}); // div-1  				 alert($('input:hidden').val()); // hello  			});  		});  	</script>  </html>

屬性過濾選擇器

[attribute](取擁有attribute屬性的元素)

將有 title 元素的span設置背景色為籃色

$('span[title]').css('background','blue');

[attribute = value]和[attribute != value](取attribute屬性值等於value或不等於value的元素)

$('span[title = test3]').css('background','red');

將有 title='test3' 元素的span設置背景色為紅色

<!DOCTYPE html>  <html>  	<head>  		<meta charset="utf-8">  		<title></title>    		<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.min.js"></script>  	</head>  	<body>  		<button id = "buttonOne" style = "width:100px; height:45px;">點我改變顏色</button>  			<div id="divOne">  				<span title="test1">兄弟1-1</span>  				<span title="test2">兄弟1-2</span>  				<span title="test3">兄弟1-3</span>  			</div>  	</body>    	<script>  		/*  		*DOM載入完全成執行  		*/  		$(function() {  			 $('#buttonOne').click(function(){  				 $('span[title]').css('background', 'blue');  				 $('span[title = test3]').css('background', 'red');  			});  		});  	</script>  </html>