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 = spanOne
或
class = 'pTwo'
的字体设置成蓝色
$('#spanOne,.pTwo').css('color', 'blue');
示例代码整体效果如下:
<!DOCTYPE html>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<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>
<li>One</li>
<li>Two</li>
<li>Three</li>
<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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<div id="divOne">
<p>外层段落一</p>
<p>外层段落二</p>
<p>外层段落三</p>
<div id="divInner">
<p>里层段落一</p>
<p>里层段落二</p>
<p>里层段落三</p>
</body>
<script>
$('#divOne > p').css('color', 'blue');
</script>
</html>
prev + next(下一个兄弟元素,等同于next()方法)
$('#divTwo + ul').css('color', 'red');
下面的代码,只有 id 为
divTwo
元素的下一个兄弟元素 ul 会变色,这里是序列1-*
<!DOCTYPE html>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<div id="divTwo">
<li>序列1-1</li>
<li>序列1-2</li>
<li>序列1-3</li>
<li>序列2-1</li>
<li>序列2-2</li>
<li>序列2-3</li>
</body>
<script>
$('#divTwo + ul').css('color', 'red');
</script>
</html>
prev ~ siblings(prev元素的所有兄弟元素,等同于nextAll()方法)
$('#divThree ~ span').css('color', 'red');
下面的代码,兄弟一到三会变色
<!DOCTYPE html>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<div id="divThree">
<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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<div id="divOne">
<li>序列1-1</li>
<li>序列1-2</li>
<li>序列1-3</li>
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<div id="divOne">
divOne
<div id="divTwo">
divTwo
<div class="divThree">
divThree
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<table border="1">
<th>Month</th>
<th>Savings</th>
<th>Name</th>
<td>January</td>
<td>$100</td>
<td>LinBingWen</td>
<td>Feb</td>
<td>$200</td>
<td>test</td>
<td>Jna</td>
<td>$2300</td>
<td>kkk</td>
<td>Nev</td>
<td>$800</td>
<td>cdf</td>
<td>few</td>
<td>$300</td>
<td>ggg</td>
<td>Oct</td>
<td>$300</td>
<td>ccc</td>
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<span id="divFour">
<li>序列4-0</li>
<li>序列4-1</li>
<li>序列4-2</li>
<li>序列4-3</li>
<li>序列4-5</li>
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<div id="divOne">
<span>兄弟1-1</span>
<span>兄弟1-2</span>
<span>兄弟1-3</span>
</body>
<script>
$('#divOne span:contains("兄弟1-1")').css('color', 'red');
</script>
</html>
:empty(取不包含子元素或文本为空的元素)
$('#divTwo span:empty').html('没有内容').css('color', 'red');
下面第span显示”没有内容”文本
<!DOCTYPE html>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<div id="divTwo">
<span></span><br />
<span></span><br />
<span></span><br />
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<div id="divThree">
<h1>我是标题一</h1>
<span>我是span</span>
</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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<li>序列1</li>
<li></li>
<li></li>
<li>序列2</li>
</body>
<script>
$('ol li:parent').css('border', '1px solid #000');
</script>
</html>
可见性过滤选择器
:hidden(取不可见的元素)
jQuery至1.3.2之后的:hidden选择器仅匹配
或
<input type="hidden" />
的元素,而不匹配
visibility: hidden
或
opacity:0
的元素。这也意味着hidden只匹配那些
“隐藏的”
并且不占空间的元素,像
或
opactity:0
的元素占据了空间,会被排除在外。
:visible(取可见的元素)
<!DOCTYPE html>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.min.js"></script>
</head>
<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>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.min.js"></script>
</head>
<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>
</body>
<script>
*DOM加载完全成执行
$(function() {
$('#buttonOne').click(function(){