• 技术文章 >web前端 >前端问答

    jquery怎么实现元素遍历

    青灯夜游青灯夜游2022-05-30 15:03:11原创131

    实现元素遍历的方法:1、children(),可返回被选元素的所有直接子元素;2、closest(),可返回被选元素的第一个祖先元素;3、each(),为每个匹配元素执行函数;4、filter(),可过滤指定元素;5、nextAll()等。

    本教程操作环境:windows7系统、jquery1.10.2版本、Dell G3电脑。

    jquery提供了多种遍历元素的方法

    方法描述
    add()把元素添加到匹配元素的集合中
    addBack()把之前的元素集添加到当前集合中
    children()返回被选元素的所有直接子元素
    closest()返回被选元素的第一个祖先元素
    contents()返回被选元素的所有直接子元素(包含文本和注释节点)
    each()为每个匹配元素执行函数
    end()结束当前链中最近的一次筛选操作,并把匹配元素集合返回到前一次的状态
    eq()返回带有被选元素的指定索引号的元素
    filter()把匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素
    find()返回被选元素的后代元素
    first()返回被选元素的第一个元素
    has()返回拥有一个或多个元素在其内的所有元素
    is()根据选择器/元素/jQuery 对象检查匹配元素集合,如果存在至少一个匹配元素,则返回 true
    last()返回被选元素的最后一个元素
    map()把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象
    next()返回被选元素的后一个同级元素
    nextAll()返回被选元素之后的所有同级元素
    nextUntil()返回介于两个给定参数之间的每个元素之后的所有同级元素
    not()从匹配元素集合中移除元素
    offsetParent()返回第一个定位的父元素
    parent()返回被选元素的直接父元素
    parents()返回被选元素的所有祖先元素
    parentsUntil()返回介于两个给定参数之间的所有祖先元素
    prev()返回被选元素的前一个同级元素
    prevAll()返回被选元素之前的所有同级元素
    prevUntil()返回介于两个给定参数之间的每个元素之前的所有同级元素
    siblings()返回被选元素的所有同级元素
    slice()把匹配元素集合缩减为指定范围的子集

    其中,用于遍历子元素的有两个:

    区别:

    children() 方法返回返回被选元素的所有直接子元素 (直接子元素,只找儿子不要孙子(: 也就是说不会递归去遍历)

    find()方法获得当前元素集合中每个元素的后代 (注意find()方法,必须传参数,否者无效)

    示例:查询所有子元素

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<script src="js/jquery-1.10.2.min.js"></script>
    		<style>
    			div * {
    				display: block;
    				border: 2px solid lightgrey;
    				color: lightgrey;
    				padding: 5px;
    				margin: 15px;
    			}
    		</style>
    
    		<script>
    			$(document).ready(function() {
    				$("button").on("click", function() {
    					$("ul").find("*").css({
    						"color": "red",
    						"border": "2px solid red"
    					});
    				});
    			});
    		</script>
    	</head>
    
    	<body class="ancestors">
    		<div style="width:500px;">div (父节点)
    			<ul>ul (指定元素)
    				<li>li (子节点1)
    					<span>span (孙节点1)</span>
    				</li>
    				<li>li (子节点2)
    					<span>span (孙节点2)</span>
    				</li>
    				<li>li (子节点3)
    					<span>span (孙节点3)</span>
    				</li>
    			</ul>
    		</div>
    		<button>选取ul的所有子元素</button>
    	</body>
    
    </html>

    1.gif

    遍历同级元素的方法有7种:

    siblings()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    	</head>
    
    	<body>
    		<div><span>Hello</span></div>
    		<p class="selected">Hello Again</p>
    		<p>And Again</p>
    
    		<script>
    			$("p").siblings(".selected").css("background", "yellow");
    		</script>
    
    	</body>
    </html>

    1.png

    next()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    	</head>
    
    	<body>
    		<ul>
    			<li>list item 1</li>
    			<li>list item 2</li>
    			<li class="third-item">list item 3</li>
    			<li>list item 4</li>
    			<li>list item 5</li>
    		</ul>
    
    		<script>
    			$('li.third-item').next().css('background-color', 'red');
    		</script>
    
    	</body>
    </html>

    2.png

    nextAll()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    	</head>
    
    	<body>
    
    		<ul>
    			<li>list item 1</li>
    			<li>list item 2</li>
    			<li class="third-item">list item 3</li>
    			<li>list item 4</li>
    			<li>list item 5</li>
    		</ul>
    
    		<script>
    			$('li.third-item').nextAll().css('background-color', 'red');
    		</script>
    
    	</body>
    </html>

    3.png

    nextUntil()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    		<style>
    			.siblings * {
    				display: block;
    				border: 2px solid lightgrey;
    				color: lightgrey;
    				padding: 5px;
    				margin: 15px;
    			}
    		</style>
    		<script>
    			$(document).ready(function() {
    				$("li.start").nextUntil("li.stop").css({
    					"color": "red",
    					"border": "2px solid red"
    				});
    			});
    		</script>
    	</head>
    	<body>
    
    		<div style="width:500px;" class="siblings">
    			<ul>ul (父节点)
    				<li>li (兄弟节点)</li>
    				<li>li (兄弟节点)</li>
    				<li class="start">li (类名为"start"的兄弟节点)</li>
    				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
    				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
    				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
    				<li class="stop">li (类名为"stop"的兄弟节点)</li>
    			</ul>
    		</div>
    		<p>在这个例子中,我们返回在类名为“star”和类名为“stop”的 li元素之间的所有下一个兄弟元素。</p>
    
    	</body>
    </html>

    4.png

    prev()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    		<style>
    			.siblings * {
    				display: block;
    				border: 2px solid lightgrey;
    				color: lightgrey;
    				padding: 5px;
    				margin: 15px;
    			}
    		</style>
    		<script>
    			$(document).ready(function() {
    				$("li.start").prev().css({
    					"color": "red",
    					"border": "2px solid red"
    				});
    			});
    		</script>
    	</head>
    	<body>
    
    		<div style="width:500px;" class="siblings">
    			<ul>ul (父节点)
    				<li>li (兄弟节点)</li>
    				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
    				<li class="start">li (类名为"start"的li节点)</li>
    				<li>li (兄弟节点)</li>
    				<li>li (兄弟节点)</li>
    			</ul>
    		</div>
    
    	</body>
    </html>

    5.png

    prevAll()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    		<style>
    			.siblings * {
    				display: block;
    				border: 2px solid lightgrey;
    				color: lightgrey;
    				padding: 5px;
    				margin: 15px;
    			}
    		</style>
    		<script>
    			$(document).ready(function() {
    				$("li.start").prevAll().css({
    					"color": "red",
    					"border": "2px solid red"
    				});
    			});
    		</script>
    	</head>
    	<body>
    
    		<div style="width:500px;" class="siblings">
    			<ul>ul (parent)
    				<li>li (类名为"start"的li的上一个兄弟节点)</li>
    				<li>li (类名为"start"的li的上一个兄弟节点)</li>
    				<li>li (类名为"start"的li的上一个兄弟节点)</li>
    				<li class="start">li (类名为"start"的li节点)</li>
    				<li>li (兄弟节点)</li>
    				<li>li (兄弟节点)</li>
    			</ul>
    		</div>
    		<p>在这个例子中,我们返回类名称为“star”的li元素之前的所有兄弟元素。</p>
    
    	</body>
    </html>

    6.png

    prevUntil()方法

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    		<style>
    			.siblings * {
    				display: block;
    				border: 2px solid lightgrey;
    				color: lightgrey;
    				padding: 5px;
    				margin: 15px;
    			}
    		</style>
    		<script>
    			$(document).ready(function() {
    				$("li.start").prevUntil("li.stop").css({
    					"color": "red",
    					"border": "2px solid red"
    				});
    			});
    		</script>
    	</head>
    	<body>
    
    		<div style="width:500px;" class="siblings">
    			<ul>ul (父节点)
    				<li class="stop">li (类名为"stop"的兄弟节点)</li>
    				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
    				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
    				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
    				<li class="start">li (类名为"start"的li节点)</li>
    				<li>li (兄弟节点)</li>
    				<li>li (兄弟节点)</li>
    			</ul>
    		</div>
    		<p>在这个例子中,我们返回在类名为“star”和“stop”的li元素之间的所有上一个兄弟元素,。</p>
    
    	</body>
    </html>

    7.png

    【推荐学习:jQuery视频教程web前端视频

    以上就是jquery怎么实现元素遍历的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:jquery
    上一篇:jquery怎么增加一行表格 下一篇:HTML5中新增了哪些input控件类型
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• jquery怎么清除同级非选中的元素• jquery怎么设置元素的位置• jquery怎么删除除表头外的其他行• 怎么用jquery实现下拉菜单• jquery怎么设置第一行不清空
    1/1

    PHP中文网