jQuery 过滤方法

jQuery 过滤方法

过滤方法说明
hasClass()类名过滤
eq()下标过滤
is()判断过滤
not()反向过滤
filter()表达式过滤
has()表达式过滤后代元素

hasClass() 类名过滤

语法

$(元素).hasClass("了类名")

说明

判断元素是否包含指定类名。

使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").each(function(index) {
					var b = $(this).hasClass("select");
					if (b) {
						$(this).css("color", "red");
					}
				})
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li class="select">jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

eq() 下标过滤

语法

$(元素).eq(n)

说明

n是一个整数。当n取值为0或正整数时,eq(0)获取的是第1个元素,eq(1)获取的是第2个元素,……,以此类推。当n取值为负整数时,eq(-1)获取的是倒数第1个元素,eq(-2)获取的是倒数第2个元素,……,以此类推。

使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").eq(3).css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li>jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

is() 判断过滤

语法

$(元素).is(选择器)

说明

判断元素集合是否存在符合条件的元素。

is()方法非常好用,能不能用好也直接决定你的代码是否高效。使用jQuery进行开发,没有做不到的,只有想不到的。下面列出的是is()方法的常用功能代码。

举例

//元素是否可见
$().is(":visible")

//元素是否在动画中
$().is(":animated")

//单选框或复选框是否被选中
$().is(":checked")

//元素是否为第一个子元素
$(this).is(":first-child")

//文本是否包含指定内容
$().is(":contains('hello')")

//元素是否包含类名
$().is(".select")

复选框选中

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("#selectAll").change(function() {
					var b = $(this).is(":checked");
					if (b) {
						$(".fruit").prop("checked", true);
					} else {
						$(".fruit").prop("checked", false);
					}
				});
			})
		</script>
	</head>
	<body>
		<p>
			<label><input id="selectAll" type="checkbox">全选/反选</label>
		</p>
		<label><input class="fruit" type="checkbox" value="苹果">苹果</label>
		<label><input class="fruit" type="checkbox" value="香蕉">香蕉</label>
		<label><input class="fruit" type="checkbox" value="西瓜">西瓜</label>
	</body>
</html>

是否包含类名

判断元素是否存在某个类名,我们有两种方法:一种是hasClass()方法,另一种是is()方法。在实际开发中,建议优先使用hasClass()方法。主要是从查找速度来看,hasClass()方法远远优于is()方法。造成二者查找速度存在差异的原因很简单,is()方法封装的东西比hasClass()方法封装的多得多,运行速度肯定也慢得多。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").each(function(index, e) {
					var b = $(this).is(".select");
					if (b) {
						$(this).css("color", "red");
					}
				});
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li class="select">jQuery</li>
		</ul>
	</body>
</html>

not() 反向过滤

语法

$(元素).not(选择器或函数)

说明

当not()方法参的数是一个选择器时,表示使用选择器来过滤不符合条件的元素,然后选取其余元素。

当not()方法的参数是一个函数时,表示使用函数来过滤不符合条件的元素,然后选取其余元素。

选择器使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").not(".select").css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li class="select">jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

函数使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").not(function() {
					return $(this).text() == "jQuery"
				}).css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li>jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

filter() 表达式过滤

语法

$(元素).filter(选择器或函数)

选择器使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").filter(".select").css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li class="select">jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

函数使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").filter(function() {
					return $(this).text() == "jQuery";
				}).css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li class="select">jQuery</li>
		</ul>
	</body>
</html>

在这里插入图片描述

has() 表达式过滤后代元素

语法

$(元素).has(选择器)

说明

has()方法与filter()方法功能相似,不过has()方法只能使用选择器来过滤,不能使用函数来过滤。因此我们可以把has()方法看成是filter()方法的精简版。

has()方法虽然没有filter()方法那么强大,但是它的运行速度更快。

使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/jquery-1.12.4.min.js"></script>
		<script>
			$(function() {
				$("li").has("span").css("color", "red");
			})
		</script>
	</head>
	<body>
		<ul>
			<li>HTML</li>
			<li>CSS</li>
			<li>JavaScript</li>
			<li><span>jQuery</span></li>
		</ul>
	</body>
</html>

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值