Jquery基础之遍历和循环

遍历

1.祖先

        parent()返回被选元素的直接父元素

        parents()返回被选元素的所有祖先,一直向上直到(html)

        parentsUntil()返回被选元素和参数祖先元素之间的所有元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.6.4.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		
		$(function(){
//			$("span").parent().css({"color":"red","border":"2px solid red"})只有li被选中
//			$("span").parents().css({"color":"red","border":"2px solid red"})//所有祖先都被选中
			$("span").parentsUntil($("div")).css({"color":"red","border":"2px solid red"})
		})
	</script>
	<style type="text/css">
		.ancestors{
			/*独占一行,可以设置宽高
			 */
			display: block;
			border: 2px solid lightblue;
			color: lightgrey;
			padding: 5px;
			margin: 15px;
		}
	</style>
	</head>
	<body class="ancestors">body(曾曾祖父元素)
		
		<div> div(曾祖父元素)
		<ul>ul(祖父元素)
			<li>li(父元素)
				<span>span</span>
			</li>
		</ul>
		</div>
	</body>
</html>

2.后代

        1.children()返回被选元素的所有子元素

         2.find()返回被选元素的后代,一路向下直到选择的最后一代

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.6.4.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		
			$(function(){
//				$("div").children("p").css({"color":"red","border":"2px solid red"})直接子元素p都被选中
//$("div").children($("p:first")).css({"color":"red","border":"2px solid red"})
//			$("div").find("span").css({"color":"red","border":"2px solid red"})
			//选取所有后辈中满足选择器的元素
			$("div").find("*").css({"color":"red","border":"2px solid red"})
			//选取所有的后辈
			})
	</script>
	<style type="text/css">
		.descendants *{
			display: block;
			border: 2px solid lightgrey;
			color: lightgrey;
			padding: 5px;
			margin: 15px;
		}
	</style>
	</head>
	<body>
		<div class="descendants">
			div(当前元素)
			<p>p(儿子元素)
				<span>span(孙子元素)</span>
			</p>
			<p>p(儿子元素)
				<span>span(孙子元素)</span>
			</p>
			
		</div>
	</body>
</html>

      
3.同胞

        1.siblings()返回所有同胞,不包含元素本身

        2.next()下一个同胞

        3.nextAll() 弟弟妹妹们

        4.nextUntil()返回介于两个给定参数之间的跟随的同胞

         5.prev()前一个同胞

        6.prevAll()所有的哥哥姐姐们

        7.prevUntil()返回介于给定参数之间前边的同胞

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.6.4.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		
	$(function(){
		
//		$("h2").siblings().css({"color":"red","border":"2px solid red"})
//$("h2").next().css({"color":"red","border":"2px solid red"})H3
//$("h2").nextAll().css({"color":"red","border":"2px solid red"})//h2后所有同胞,不包含h2
	$("h2").nextUntil("h6").css({"color":"red","border":"2px solid red"})//2-6之间
	})
	</script>
	<style type="text/css">
		.siblings *{
				display: block;
			border: 2px solid lightgrey;
			color: lightgrey;
			padding: 5px;
			margin: 15px;
		}
	</style>
	</head>
	<body class="siblings">
		<div>div(父元素)
			<p>p</p>
			<span>span</span>
			<h2>h2</h2>
			<h3>h3</h3>
			<h4>h4</h4>
			<h5>h5</h5>
			<h6>h6</h6>
			<p>p</p>
		</div>
	</body>
</html>

循环

1.元素循环

$("selector").each(function(index,element){})
         选择器所选择的元素进行循环执行function方法,其中index表示遍历的索引,element表示遍历的元素

2.集合数组循环

 $.each(集合数组,function(index,element))
 上述方法中index和element的名称可以自定义

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.6.4.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		
		$(function(){
			$("#btn1").click(function(){
				$("li").each(function(i,li){
//			alert(i+" "+$(li).text())
//$(this)可以用来表示当前循环的元素
	alert(i+" "+$(this).text())
			})
			
		})
		})
	var provinces01={"pid":"1001","pname":"辽宁"}
	var provinces02={"pid":"1002","pname":"吉林"}
	var provinces03={"pid":"1003","pname":"黑龙江"}
	var pros=[provinces01,provinces02,provinces03]
	$.each(pros, function(i,pro) {
		console.log((i+1)+"."+pro.pid+",pname="+pro.pname)
	});
	//作业:实现两个下拉菜单的联动
	</script>
	</head>
	<body>
		<button id="btn1">点击弹出弹框提示每个列表项的内容</button>
		<ul>
			<li>选项1</li>
			<li>选项2</li>
			<li>选项3</li>
		</ul>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值