一步一步学习 JQuery (二) 选择器: 基本选择器 && 层次选择器

选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器
jQuery 选择器的优点:

简洁的写法

技术分享                   

完善的事件处理机制

技术分享

一、基本选择器

基本选择器是 jQuery 中最常用的选择器, 也是最简单的选择器, 它通过元素 id, class 和标签名来查找 DOM 元素(在网页中 id 只能使用一次, class 允许重复使用).

技术分享

改变 id 为 one 的元素的背景色为 # bbffaa
改变 class 为 mini 的所有元素的背景色为 # bbffaa
改变元素名为 <div> 的所有元素的背景色为 # bbffaa
改变所有元素的背景色为 # bbffaa
改变所有的<span>元素和 id 为 two 的元素的背景色为 # bbffaa

示例:

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}			
		</style>
		
		<!-- 导入 jQuery 库 -->
		<script type="text/javascript" src="jquery-1.9.1.js"></script>
		<script type="text/javascript">
			
			$(function(){
				//点击ID为btn1 按钮,点亮 ID 为 one 的DIV区域
				$("#btn1").click(function(){
					$("#one").css("background","#ffeeaa");//css() 更改 其css 属性值 的函数
				});
				$("#btn2").click(function(){
					$(".mini").css("background","#ffeeaa");//css() 更改 其css 属性值 的函数
				});
				$("#btn3").click(function(){
					$("div").css("background","#ffeeaa");//css() 更改 其css 属性值 的函数
				});
				$("#btn4").click(function(){
					$("*").css("background","#ffeeaa");//css() 更改 其css 属性值 的函数
				});
				$("#btn5").click(function(){
					$("span,#two").css("background","#ffeeaa");//css() 更改 其css 属性值 的函数
				});
			})
		
		</script>
		
	</head>
	<body>		
		<input type="button" value="选择 id 为 one 的元素" id="btn1" />
		<input type="button" value="选择 class 为 mini 的所有元素" id="btn2" />
		<input type="button" value="选择 元素名是 div 的所有元素" id="btn3" />
		<input type="button" value="选择 所有的元素" id="btn4" />
		<input type="button" value="选择 所有的 span 元素和id为two的元素" id="btn5" />
		
		<br><br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<span id="span">^^span元素^^</span>
	</body>
</html>

二、层次选择器

如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使用层次选择器.
技术分享
注意:  (“prev ~ div”) 选择器只能选择 “# prev ” 元素后面的同辈元素; 而 jQuery 中的方法 siblings() 与前后位置无关, 只要是同辈节点就可以选取

改变 <body> 内所有 <div> 的背景色为 # bbffaa
改变 <body> 内子 <div> 的背景色为 # bbffaa
改变 id 为 one 的下一个 <div> 的背景色为 # bbffaa
改变 id 为 two 的元素后面的所有兄弟<div>的元素的背景色为 # bbffaa
改变 id 为 two 的元素所有 <div> 兄弟元素的背景色为 # bbffaa

示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}			
		</style>
		<script type="text/javascript" src="jquery-1.9.1.js"></script>
		<script type="text/javascript">
		
			$(function(){
				
				$("#btn1").click(function(){
					$("body div").css("background","#ffddaa");
				});
				//只选择孩子,孙子不算
				$("#btn2").click(function(){
					$("body > div").css("background","#ffddaa");
				});
				$("#btn3").click(function(){
					$("#one + div").css("background","#ffddaa");//必须直接相邻
				});
				$("#btn4").click(function(){
					$("#two ~ div").css("background","#ffddaa");
				});
				$("#btn5").click(function(){
					$("#two").sibling("div").css("background","#ffddaa");
				});
				$("#btn6").click(function(){
					//$("#one + span").css("background", "#ffbbaa");无效因为span 不与one直接相邻
					$("#one").nextAll("span:first").css("background","#ffddaa");
				});
				$("#btn7").click(function(){
					$("#two").prevAll("div").css("background","#ffddaa");
				});
			})
		
		</script>
	</head>
	<body>		
		<input type="button" value="选择 body 内的所有 div 元素" id="btn1" />
		<input type="button" value="在 body 内, 选择子元素是 div 的." id="btn2" />
		<input type="button" value="选择 id 为 one 的下一个 div 元素" id="btn3" />
		<input type="button" value="选择 id 为 two 的元素后面的所有 div 兄弟元素" id="btn4" />
		<input type="button" value="选择 id 为 two 的元素所有 div 兄弟元素" id="btn5" />
		<input type="button" value="选择 id 为 one 的下一个 span 元素" id="btn6" />
		<input type="button" value="选择 id 为 two 的元素前边的所有的 div 兄弟元素" id="btn7" />
		
		<br><br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<span id="span">^^span元素^^</span>
		<span id="span">--span元素--</span>
	</body>
</html>


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。