021_遍历后代

1. children()方法

1.1. children()方法返回被选元素的所有直接子元素, 该方法只会向下一级对DOM树进行遍历。

1.2. children()方法接受一个选择器表达式作为可选参数, 与我们传递到$()的参数的类型是相同的。如果应用该选择器, 将测试元素是否匹配该表达式, 以此筛选这些元素。

1.3. 请注意, 与大多数jQuery方法一样, children()不返回文本节点; 如果需要获得包含文本和注释节点在内的所有子节点, 请使用contents()。

1.4. 语法

$(selector).children()
$(selector).children(selector)

1.5. 参数

2. contents()方法

2.1. contents()方法获得匹配元素集合中每个元素的子节点, 包括文本和注释节点。

2.2. 语法

$(selector).contents()

2.3. 例子

2.3.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>children()方法</title>
		
		<script type="text/javascript" src="jquery.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				$('#btn1').click(function(){
					$("div").children().css({"color":"red","border":"2px solid red"});
				});
				$('#btn2').click(function(){
					$("div").children('.myUl').css({"color":"red","border":"2px solid red"});
				});
				$('#btn3').click(function(){
					var c = $("div").contents();
					var ch = $("div").children();
					c = c.filter(function() {
  						return this.nodeType == 3 && (this.nodeValue.trim().length > 0);
					});
					c.wrap('<span style="color:red;"></span>')
				});
			});
		</script>
		<style type="text/css">
			.ancestors div
			{
				width: 500px; 
				float: left;
			}
			.ancestors div, .ancestors div ul, .ancestors div li, .ancestors div b
			{ 
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
	</head>
	<body class="ancestors"> 
		<span style="display: block;">body(曾曾祖父)</span>
  		<div>div(曾祖父)
		    <ul class="myUl">ul(祖父)  
		    	<li>li(直接父)
		        	<b>b元素</b>
		      	</li>
		    </ul>   
  		</div>
  		<div>div(曾祖父)
		    <ul>ul(祖父)  
		    	<li>li(直接父)
		        	<b>b元素</b>
		      	</li>
		    </ul>   
  		</div>
  		<span style="display: block; clear: left;">
  			<button id="btn1">直接子元素</button> <button id="btn2">过滤的直接子元素</button>
  			<button id="btn3">获得匹配元素集合中每个元素的子节点,包括文本和注释节点</button>
  		</span>
	</body>
</html>

2.3.2. 效果图

3. find()方法

3.1. find()方法获得当前元素集合中每个元素的后代, 不包含自身, 通过选择器、DOM节点或jQuery对象来筛选。

3.2. find()方法第一个明显特征是, 其接受的选择器表达式、DOM节点或jQuery对象参数, 将通过测试这些元素是否匹配该参数来对元素进行过滤。而且这个参数是必需的, 如果我们需要实现对所有后代元素的取回, 可以传递通配选择器'*'。

3.3. 语法 1

$(selector).find(selector)

3.4. 参数

3.5. 语法 2

$(selector).find(element)

3.6. 参数

3.7. 例子

3.7.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>find()方法</title>
		
		<script type="text/javascript" src="jquery.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				$('#btn1').click(function(){
					$("div").find('li').css({"color":"red","border":"2px solid red"});
				});
				$('#btn2').click(function(){
					$("div").find('.myUl').css({"color":"red","border":"2px solid red"});
				});
				$('#btn3').click(function(){
					$("div").find($('li')).css({"color":"red","border":"2px solid red"});
				});
				$('#btn4').click(function(){
					$("div").find('*').css({"color":"red","border":"2px solid red"});
				});
				$('#btn5').click(function(){
					$("div").find(document.getElementsByTagName('li')).css({"color":"red","border":"2px solid red"});
				});
				$('#btn6').click(function(){
					$("div").find(document.getElementsByClassName('myUl')).css({"color":"red","border":"2px solid red"});
				});
			});
		</script>
		<style type="text/css">
			.ancestors div
			{
				width: 500px; 
				float: left;
			}
			.ancestors div, .ancestors div *
			{ 
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
	</head>
	<body class="ancestors"> 
		<span style="display: block;">body(曾曾祖父)</span>
  		<div>div(曾祖父)
		    <ul class="myUl">ul(祖父)  
		    	<li>li(直接父)
		        	<b>b元素</b>
		      	</li>
		    </ul>   
  		</div>
  		<div>div(曾祖父)
		    <ul>ul(祖父)  
		    	<li>li(直接父)
		        	<b>b元素</b>
		      	</li>
		    </ul>   
  		</div>
  		<span style="display: block; clear: left;">
  			<button id="btn1">后代元素(选择器表达式-标签名)</button> <button id="btn2">后代元素(选择器表达式-类名)</button>
  			<button id="btn3">后代元素(jQuery对象)</button> <button id="btn4">后代元素(通配符)</button>
  			<button id="btn5">后代元素(DOM对象-标签名)</button> <button id="btn6">后代元素(DOM对象-类名)</button>
  		</span>
	</body>
</html>

3.7.2. 效果图

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值