jQuery--过滤选择器(可见性过滤选择器、属性过滤选择器)详解

本文介绍了jQuery中的可见性过滤选择器及属性过滤选择器的应用。通过示例代码详细展示了如何使用这些选择器来筛选页面上的元素,并对不同类型的元素进行样式调整。
可见性过滤选择器

可见性过滤选择器是指根据元素的可见性来筛选元素的选择器。

选择器描述返回
:hidden选取所有的不可见元素,或者ytpe为hidden的元素jQuery对象数组
:visible选取所有的可见元素jQuery对象数组

其中,:hidden选择器用于选取所有不可见元素,包括< input type=“hidden” />、< div style=“display:none”; >等形式的不可见元素。

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
	</head>
	<body>
		<div id="topDiv">页面顶部</div>
		<div id="menuDiv" style="display: none;">菜单栏</div>
		<div id="mainDiv" style="height: 60px;">
			用户ID:<input type="hidden" value="用户ID" /><br />
			用户名:<input type="text" name="userName" value="请输入用户名"/>
		</div>
		<button id="showHidden" onclick="showHiddenElement()">显示</button>
		<script type="text/javascript">
			$(function(){
				//页面可见div
				$("div:visible").css("background-color","blue");
				//页面可见input
				$("input:visible").css("border","2px solid red");
				//所有可见元素
				$(":visible").css("font-size", "20px");
			});
			function showHiddenElement(){
				//隐藏的div
				$("div:hidden").show(1000);
				//隐藏的input
				$("ipunt:hidden").attr("type","text");
			}
		</script>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述

注意:在jQuery中,因为visibility:hidden和opacity:0 修饰的元素在页面中占据一定物理空间,所以都被视为可见的。

属性过滤选择器

属性过滤选择器是指根据元素的属性来筛选元素的选择器,在属性匹配时以“[” 开始、以“]”结束。

选择器描述返回
[attribute]选取包含指定属性的元素jQuery对象数组
[attribute=value]选取属性等于某个特定值的元素jQuery对象数组
[attribute!=value]选取属性不等于或不包含某个特定值的元素jQuery对象数组
[attribute^=value]选取属性以某个值开始的元素jQuery对象数组
[attribute$=value]选取属性以某个值结尾的元素jQuery对象数组
[attribute*=value]选取属性中包含某个值的元素jQuery对象数组
[attribute1][attribute2][attribute3]复合属性选择器,需要同时满足多个条件时使用jQuery对象数组

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>jQuery属性过滤选择器</title>
		<script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
	</head>
	<body>
		<div id="topDiv" title="top" desc="页面顶部">页面顶部</div>
		<div id="menuDiv" title="menu">菜单栏</div>
		<div id="mainDiv">主题区</div>
		<div id="leftDiv" title="mainLeft">左侧栏</div>
		<div id="rightDiv" title="mainRight">右侧栏</div>
		<div id="bottomDiv" title="bottom" desc="页面底部">底部栏</div>
		<div id="advDiv" title="advbottom">广告栏</div>
		
		<script type="text/javascript">
			$(function(){
				//具有titile属性的div
				$("div[title]").css({width:"300px",height:"30px",margin:"3px"});
				//title属性值为menu的div
				$("div[title=menu]").css("border","2px solid red");
				//title属性值不为menu的div
				$("div[title!=menu]").css({backgroundColor:"blue"});
				//title属性值以main开头的div
				$("div[title^=main]").css("margin-left","100px");
				//title属性值以bottom结尾的div
				$("div[title$=bottom]").css("padding-left","50px");
				//title属性值包含o的div
				$("div[title*=o]").css("font-style","initial");
				//title属性值包含o且含有desc属性的div
				$("div[title*=o][desc]").css("font-weight","800");
			});
		</script>
	</body>
</html>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值