首页 前端知识 jQuery 遍历

jQuery 遍历

2024-06-18 00:06:03 前端知识 前端哥 49 420 我要收藏

通过 jQuery 遍历从被选(当前的)元素开始,在树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。

 

 一、向上遍历 DOM 树

 未使用jQuery之前样式,后续css与html一致

(1)元素的直接父元素:parent(),设置span父元素的背景色为黄色

<style>
	body{
		margin: 100px;
	}
	div{
		width: 200px;
		height: 200px;
		border: 1px solid #ccc;
	}
	ul{
		width: 100px;
		height: 100px;
		padding: 0;
		margin: 50px auto;
		border: 1px solid #ccc;
	}
	li{
		list-style: none;
		width: 60px;
		height: 20px;
		margin: 20px auto;
		background-color: red;
		border: 1px solid #ccc;
	}
</style>
<body>
<div>
	这是div
	<ul>
		<li>
			<span>span</span>
		</li>
		<li>
			<a>这是a</a>
		</li>
	</ul>
</div>
</body>
<script>
$(document).ready(function(){
  $("span").parent().css("background-color","yellow");
});
</script>

(2)元素的所有祖先元素:parents()

<script>
$(document).ready(function(){
  $("span").parents().css("background-color","yellow");
});
</script>

(3)介于两个给定元素之间的所有祖先元素:parentsUntil(),介于div与span之间的祖先元素

二、向下遍历 DOM 树

(1)元素的所有直接子元素:children(),ul的子元素

<script>
$(document).ready(function(){
  $("ul").children().css("background-color","yellow");
});
</script>

<body>
<div>
	这是div
	<ul>
		<li class="first">
			<span>span</span>
		</li>
		<li>
			<a>这是a</a>
		</li>
	</ul>
</div>
</body>

<script>
$(document).ready(function(){
  $("ul").children(".first").css("background-color","yellow");
});
</script>

(2)元素的后代元素,一路向下直到最后一个后代:find()

<script>
$(document).ready(function(){
  $("div").find("a").css("background-color","yellow");
});
</script>

<script>
$(document).ready(function(){
  //返回 <div> 的所有后代
  $("div").find("*").css("background-color","yellow");
});
</script>

三、DOM 树进行水平遍历

(1)元素的所有同胞元素:siblings()

<style>
	body{
		margin: 100px;
	}
	div{
		width: 200px;
		height: 350px;
		border: 1px solid #ccc;
	}
	ul{
		width: 100px;
		height: 250px;
		padding: 0;
		margin: 50px auto;
		border: 1px solid #ccc;
	}
	li{
		list-style: none;
		width: 60px;
		height: 20px;
		margin: 20px auto;
		background-color: red;
		border: 1px solid #ccc;
	}
</style>
<body>
<div>
	这是div
	<ul>
		<li class="first">
			<span>span</span>
		</li>
		<li>
			<a>这是a</a>
		</li>
		<li>
			<a>1</a>
		</li>
		<li>
			<a>2</a>
		</li>
		<li>
			<a>3</a>
		</li>
	</ul>
</div>
</body>
<script>
$(document).ready(function(){
	$("li").siblings().css("background-color","yellow");
});
</script>

 

(2)元素的下一个同胞元素:next()

$(document).ready(function(){
	$(".first").next().css("background-color","yellow");
});
</script>

(3)元素的所有跟随的同胞元素:nextAll()

<script>
$(document).ready(function(){
	$(".first").nextAll().css("background-color","yellow");
});
</script>

(4)介于两个给定参数之间的所有跟随的同胞元素:nextUntil()

<body>
<div>
	这是div
	<ul>
		<li class="first">
			<span>span</span>
		</li>
		<li>
			<a>这是a</a>
		</li>
		<li>
			<a>1</a>
		</li>
		<li class="second">
			<a>2</a>
		</li>
		<li>
			<a>3</a>
		</li>
	</ul>
</div>
</body>
<script>
$(document).ready(function(){
	$(".first").nextUntil(".second").css("background-color","yellow");
});
</script>

四、过滤:缩小搜索元素的范围

(1)元素的首个元素:first()

<script>
$(document).ready(function(){
	$("li").first().css("background-color","yellow");
});
</script>

(2)元素的最后一个元素:last()

<script>
$(document).ready(function(){
	$("li").last().css("background-color","yellow");
});
</script>

(3)元素中带有指定索引号的元素:eq(),索引从0开始

<script>
$(document).ready(function(){
	$("li").eq(2).css("background-color","yellow");
});
</script>

(4)规定一个标准,不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回:filter

<body>
<div>
	这是div
	<ul>
		<li class="first">
			<span>span</span>
		</li>
		<li>
			<a>这是a</a>
		</li>
		<li>
			<a>1</a>
		</li>
		<li class="first">
			<a>2</a>
		</li>
		<li>
			<a>3</a>
		</li>
	</ul>
</div>
</body>
<script>
$(document).ready(function(){
	$("li").filter(".first").css("background-color","yellow");
});
</script>

(5)返回不匹配标准的所有元素:not(),not() 方法与 filter() 相反。

<script>
$(document).ready(function(){
	$("li").not(".first").css("background-color","yellow");
});
</script>

 

五、其他方法

(1)元素添加到已存在的元素组合中:add()

 

<script>
$(document).ready(function(){
	$("ul").add("li").add("span").css("background-color","yellow");
});
</script>

<script>
$(document).ready(function(){
	$("ul").add("span").css("background-color","yellow");
});
</script>

 (2)元素的第一个祖先元素:closest()

<script>
$(document).ready(function(){
	$("span").closest("ul").css("background-color","yellow");
});
</script>

 (3)选取基于索引的元素的子集:slice() 

<script>
$(document).ready(function(){
	$("li").slice(3).css("background-color","yellow");
});
</script>

 

转载请注明出处或者链接地址:https://www.qianduange.cn//article/12535.html
标签
评论
发布的文章

jQuery基本使用

2024-06-24 02:06:16

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!