jQuery高级选择器

高级选择器

  • 所谓的高级选择器指的就是层次选择器,他可以根据父节点来选择子节点的信息,包括如下的选择器
NO 选择器 描述 返回类型
1 祖先 后代 根据一个元素可以取得指定的所有子元素(不管中间有多少后代),可以使用find()函数代替空格 元素集合
2 祖先>后代 根据一个元素去除所有对应的第一层对应子元素 元素集合
3 元素+相邻 指的是所有与他平级的元素信息,可以使用next()代替 元素集合
4 元素~兄弟 取得与他评级的元素信息,可以使用nextAll()方法代替 单个元素
  • 通过具体的代码演示具体的操作

取得后代元素

  • 一定要记住的是" " 空格是存在特殊含义的,
  • 选择所有的后代元素
<html>
<head>
	<meta charset="UTF-8">
	<title>jquery项目</title>
	<script type="text/javascript" src="js/jquery.min.js" charset="UTF-8"></script>
	<link rel="stylesheet" type="text/css" href="css/style.css"/>
	<script type="text/javascript">
		$(
			function(){
				$("div span").attr("class","init");
			}
		);
	</script>
</head>
<body>
<div>
	<div ><span>我爱这个世界</span></div>
	<span>生活还需继续!</span>
	<p><span>生活不会偏袒你!</span></p>
	
</div>
</body>
</html>	
  • 运行结果

在这里插入图片描述

  • 使用find()函数同样也可以进行一样的操作

		$(
			function(){
				$("div").find("span").attr("class","init");
			}
		);
  • find()属于jQuery中定义的函数,所以此函数一定要通过jQuery对象实现调用,找到指定元素中所有后代元素信息
  • 现在不管span在多少级里面,只要你出现在"div"元素之中就表示允许操作.

取得指定元素的第一层子元素

<html>
<head>
	<meta charset="UTF-8">
	<title>jquery项目</title>
	<script type="text/javascript" src="js/jquery.min.js" charset="UTF-8"></script>
	<link rel="stylesheet" type="text/css" href="css/style.css"/>
	<script type="text/javascript">
		$(
			function(){
				$("div>span").attr("class","init");
			}
		);
	</script>
</head>
<body>
<div>
	<div ><span>我爱这个世界</span></div>
	<span>生活还需继续!</span>
	<p><span>生活不会偏袒你!</span></p>
	
</div>
</body>
</html>	
  • 运行结果

在这里插入图片描述

  • 此时在"div"的元素之下只存在有两个直接的span子元素,所以只有两个span能够设置
  • 此操作可以使用children()函数代替,找到第一个子元素
$(
	function(){
		$("div").children("span").attr("class","init");
	}
);

jQuery中find()于children()函数的区别

  • find()函数可以找到指定的元素中的所有的后代元素,相当于"祖先 后代" 选择器
  • children() 函数可以找到指定的元素中的直接后代元素相当于"父节点>子节点" 选择器.

相邻节点选择器

  • 相邻得是与它同级的指定元素信息
<html>
<head>
	<meta charset="UTF-8">
	<title>jquery项目</title>
	<script type="text/javascript" src="js/jquery.min.js" charset="UTF-8"></script>
	<link rel="stylesheet" type="text/css" href="css/style.css"/>
	<script type="text/javascript">
		$(
			function(){
				$("div+span").attr("class","init");
			}
		);
	</script>
</head>
<body>
<div>
	<div ><span>我爱这个世界</span></div>
	<span>生活还需继续!</span>
	<p><span>生活不会偏袒你!</span></p>
	
</div>
</body>
</html>	

在这里插入图片描述

  • 此时页面中于div元素同级的span元素有且只有一个,所以只能够选择到一个span元素,通用的操作也可以使用next()函数完成
  • 示例:next()函数处理
		$(
			function(){
				$("div").next("span").attr("class","init");
			}
		);

选择所有平级元素

  • 选择"+“或者是next()函数只能够选取一个平级元素,如果现在要取得全部的平级元素,那么可以使用”~"完成
  • 所有相邻元素取得
<html>
<head>
	<meta charset="UTF-8">
	<title>jquery项目</title>
	<script type="text/javascript" src="js/jquery.min.js" charset="UTF-8"></script>
	<link rel="stylesheet" type="text/css" href="css/style.css"/>
	<script type="text/javascript">
		$(
			function(){
				$("div~span").attr("class","init");
			}
		);
	</script>
</head>
<body>
<div>
	<div ><span>我爱这个世界</span></div>
	<span>生活还需继续!</span>
	<span>如果你迷茫的时候,就继续努力,反正时间都在走,与其感叹不如奋斗!</span>
	<span>加油吧</span>
	<span>你最后的机会!</span>
	<p><span>生活不会偏袒你!</span></p>
	
</div>
</body>
</html>	

在这里插入图片描述

  • 这样的操作也可以使用nextAll()函数完成
		$(
			function(){
				$("div").nextAll("span").attr("class","init");
			}
		);
  • 此时实现了于"~"同样的处理结果,

猜你喜欢

转载自blog.csdn.net/qq_43386754/article/details/86445373