首页 前端知识 jQuery 遍历

jQuery 遍历

2024-06-18 00:06:03 前端知识 前端哥 57 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中的load()、$

2024-05-10 08:05:15

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