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>

jquery怎么过滤数据 jquery过滤选择器_选择器

 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>

jquery怎么过滤数据 jquery过滤选择器_jquery怎么过滤数据_02

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>