jQuery基础——使用选择器—2过滤选择器

4、过滤选择器

         过滤选择器主要通过特定的过滤表达式来筛选特殊需求的DOM元素,过滤选择器的语法形式与CSS的伪类选择器的语法格式相同,以冒号作为前缀标识符。根据需求的不同,过滤选择器又可以分为定位过滤器、内容过滤器和可见过滤器。

4.1、定位过滤器

        定位过滤器主要是根据编号和排位筛选特定位置上的元素,或者过滤掉特定元素。 

定位过滤器
选择器说明
:first

匹配找到的第一个元素。

列如:$("tr:first")表示匹配表格的第一行

:last

匹配找到最后一个元素。

例如,$("tr:last")表示匹配表格的最后一行

:not

去除所有的与给定选择器匹配的元素。注意,在jQuery1.3中,已经支持复杂选择器了,如:not(div a)和:not(div,a)。

例如,$("input:not(:checked)")可以匹配所有未选中的input元素

:even

匹配所有索引值为偶数的元素,从0开始计数。

例如,$("tr:even")可以匹配表格的1、3、5行(即索引值为0/2/4)

:odd

匹配所有索引值为奇数的元素,从0开始计数。

例如,$("tr:even")可以匹配表格的2、4、6行(即索引值为1/3/5)

:eq

匹配一个给定索引值的元素,从0开始计数。

例如,$("tr:eq(0)")可以匹配第1行表格行

:gt

匹配所有大于给定索引值的元素,从0开始计数。

例如,$("tr:gt(0)")可以匹配第2行及其后面行

:lt

匹配所有小于给定索引值的元素,从0开始计数。

例如,$("tr:gt()")可以匹配第1行

:header匹配如h1/h2/h3之类的标题元素
:animated匹配所有正在执行动画效果的元素

		<script src="./js/jquery-3.6.0.min.js"></script>
		
		<table>
			<tr>
				<th>选择器</th>
				<th>说明</th>
			</tr>
			<tr>
				<td>:first</td>
				<td>匹配找到第一个元素。例如,$("tr:first")表示匹配表格的第一行</td>
			</tr>
			<tr>
				<td>:last</td>
				<td>匹配找到最后一个元素。例如,$("tr:last")表示匹配表格的最后一行</td>
			</tr>
			<tr>
				<td>:not</td>
				<td>去除所有的与给定选择器匹配的元素。注意,在jQuery1.3中,已经支持复杂选择器了,如:not(div a)和:not(div,a)。例如,$("input:not(:checked)")可以匹配所有未选中的input元素</td>
			</tr>
			<tr>
				<td>:even</td>
				<td>匹配所有索引值为偶数的元素,从0开始计数。例如,$("tr:even")可以匹配表格的1、3、5行(即索引值为0/2/4)</td>
			</tr>
			<tr>
				<td>:odd</td>
				<td>匹配所有索引值为奇数的元素,从0开始计数。例如,$("tr:even")可以匹配表格的2、4、6行(即索引值为1/3/5)</td>
			</tr>
			<tr>
				<td>:eq</td>
				<td>匹配一个给定索引值的元素,从0开始计数。例如,$("tr:eq(0)")可以匹配第1行表格行</td>
			</tr>
			<tr>
				<td>:gt</td>
				<td>匹配所有大于给定索引值的元素,从0开始计数。例如,$("tr:gt(0)")可以匹配第2行及其后面行</td>
			</tr>
			<tr>
				<td>:lt</td>
				<td>匹配所有小于给定索引值的元素,从0开始计数。例如,$("tr:gt()")可以匹配第1行</td>
			</tr>
			<tr>
				<td>:header</td>
				<td>匹配如h1/h2/h3之类的标题元素</td>
			</tr>
			<tr>
				<td>:animated</td>
				<td>匹配所有正在执行动画效果的元素</td>
			</tr>
		</table>
		<script>
			// 设置第1行字体为红字
			$("tr:first").css("color", "red");
			// 设置第1行字体大小为20像素
			$("tr:eq(0)").css("font-size", "20px");
			// 设置最后一行字体为蓝色
			$("tr:last").css("color", "blue");
			// 设置偶数行背景颜色
			$("tr:even").css("background", "#ffd");
			// 设置奇数行背景颜色
			$("tr:odd").css("background", "#dff");
			// 设置从第5行开始所有行的字体大小
			$("tr:gt(3)").css("font-size", "12px");
			// 设置从第1~4行字体大小
			$("tr:lt(4)").css("font-size", "18px");
		</script>

 4.2、内容过滤器

        内容过滤器主要根据匹配元素 所包含的子元素或者文本内容进行过滤。主要包括4种内容过滤器。

内容过滤器
选择器说明
:contains

匹配包含给定文本的元素。

例如,$("div:contains('图片')")匹配所有包含图片的div元素

:empty匹配所有不包含子元素或者文本的空元素
:has

匹配含有选择器所匹配的元素的元素。

例如,$("div:has(p)")匹配所有包含p元素的div元素

:parent匹配含有子元素或文本的元素
        <script src="./js/jquery-3.6.0.min.js"></script>
		<div>
			<h2>标题</h2>
			<p>段落文本1</p>
			<p><span>段落文本2</span></p>
			<ul>
				<li></li>
				<li></li>
			</ul>
		</div>
		<script>
			$(function(){
				// 匹配空li元素
				$("li:empty").text("空内容");
				// 匹配div包含ul元素中包含子元素或者文本元素
				$("div ul:parent").css("color","#0f1");
				// 标题元素中包含"标题"文本内容的
				$("h2:contains('标题')").css("color","red");
				// 包含span元素的p元素
				$("p:has(span)").css("color","blue");
			})
		</script>

4.3、可见过滤器 

        可见过滤器就是根据元素的可见或者隐藏来进行匹配的。

可见过滤器
选择器可见过滤器
:hidden匹配所有不可见元素,或者type为hidden
:visible匹配所有的可见元素
		<script src="./js/jquery-3.6.0.min.js"></script>
		<p>独在异乡为异客</p>
		<p>每逢佳节倍思亲</p>
		<p>遥知兄弟登高处</p>
		<p>遍插茱萸少一人</p>
		<script>
			$(function(){
				// 隐藏奇数位p元素
				$("p:odd").hide();
				// 设置奇数位p元素的字体颜色为红色
				$("p:odd").css("color","red");
				// 设置偶数位p元素的字体颜色为蓝色
				$("p:visible").css("color","blue");
				// 显示奇数位p元素
				$("p:hidden").show();
			})
		</script>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面相进程,面相对象

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值