网页|Zepto框架层次选择器

简介: 网页|Zepto框架层次选择器

1.引言

说到选择器,大家可能会想到层叠样式表。在css中,选择器可以获取元素,为其添加css样式;但zepto框架与css选择器相比,它更加强大,因为zepto选择器为元素添加的是行为,行为的添加使得页面的交互更加丰富多彩。今天就来介绍一下zepto的常用选择器——层次选择器、属性选择器。


2.层次选择器详解

层次选择器是通过DOM元素之间的层次关系来获取元素的。zepto层次选择器与css的相同之处都是更具元素与其父元素、子元素、兄弟元素之间的关系构成的选择器,但使用zepto层次选择器为最佳选择。

图2.1 层次选择器说明

1)后代选择器

<!DOCTYPE html>

<html>

<head>

     <meta charset="UTF-8">

     <title>zepto</title>

     <meta name="viewport"  content="width=device-width,initial-scale=1,user-scalable=no">

     <style>

         

     </style>

</head>

<body>

     <div id="parent">

         <div id="child">

            <p>我是子孙元素</p>

         </div>

     </div>

 

     <script src="js/zepto.min.js"></script>

     <script>

         //后代选择器 空格

         $("#parent  #child").css("background-color","pink");

         $("#parent p").css("color","yellow");

     </script>

</body>

</html>

图2.1.1 后代选择器效果

后代选择器选择的是元素的后代。这里我们选择了id为parent的元素里的所有id为child(后代)元素背景色变为pink的同时,又选择了id为parent的元素里的所有p(后代)元素字体颜色变为yellow。在这里可以看出后代选择器顾名思义,只要是后代都可以选择。

2)子选择器

<!DOCTYPE html>

<html>

<head>

     <meta charset="UTF-8">

     <title>zepto</title>

     <meta name="viewport"  content="width=device-width,initial-scale=1,user-scalable=no">

     <style>

         

     </style>

</head>

<body>

     <div id="parent">

         <div id="child">

             <p>我是子孙元素</p>

         </div>

     </div>

 

     <script src="js/zepto.min.js"></script>

     <script>

         //子选择器

         $("#parent>#child").css("background-color","pink");

         $("#parent>p").css("color","yellow");//找不到元素

     </script>

</body>

</html>

图2.1.2 子选择器效果

子选择器选择的是元素的子代。这里我们选择了id为parent的元素里的所有id为child(子)元素背景色变为pink的同时,又选择了id为parent的元素里的所有p(子)元素字体颜色变为yellow。但在实现效果中仅仅背景变成pink了但字体颜色仍是默认的黑色,即找不到id为parent的元素里的p(子)元素,因为在上面的代码中p元素属于child元素的子元素,故找不到元素。在这里可以看出子代选择器顾名思义,只能干涉子元素而对子元素以外的后代元素确实无能为力了。

3)相邻元素选择器

<!DOCTYPE html>

<html>

<head>

     <meta charset="UTF-8">

     <title>zepto</title>

     <meta name="viewport"  content="width=device-width,initial-scale=1,user-scalable=no">

     <style>

         

     </style>

</head>

<body>

   <p>p1</p>

     <div id="d1">d1</div>

     <p>p2</p>

     <p>p3</p>

     <div>d2</div>

     <p>p4</p>

     <script src="js/zepto.min.js"></script>

     <script>

         //相邻元素选择器

         $("#d1+p").css("background-color","pink");//d1后紧邻的p

     </script>

</body>

</html>

图2.1.3 相邻元素选择器效果

相邻元素选择器选择的是元素之后的相邻对应元素。这里我们选择了id为d1的元素之后的p元素的背景变成pink,在实现的效果中可以看到只有p2变成了粉色。在这里可以看出相邻元素选择器顾名思义,其选择的元素只能是后面紧邻的元素。

4)同辈元素选择器

<!DOCTYPE html>

<html>

<head>

     <meta charset="UTF-8">

     <title>zepto</title>

     <meta name="viewport"  content="width=device-width,initial-scale=1,user-scalable=no">

     <style>

         

     </style>

</head>

<body>

     <p>p1</p>

     <div id="d1">d1</div>

     <p>p2</p>

     <p>p3</p>

     <div>d2</div>

     <p>p4</p>

     <script src="js/zepto.min.js"></script>

     <script>

         //同辈元素选择器

         $("#d1~p").css("background-color","pink");

     </script>

</body>

</html>

图2.1.4 同辈元素选择器效果

同辈元素选择器选择的是元素之后的同辈元素。这里我们选择了id为d1的元素之后的p元素的背景变成pink,在实现的效果中可以看到除p1外的所有p元素背景都变成了变成了pink。在这里可以看出同辈元素选择器的选择顾名思义,其选择的元素是元素之后所有同辈的元素。


3.总结

zepto框架有四大常用选择器,基本选择器、层次选择器、属性选择器和基本过滤选择器。在这里笔者只介绍了其中的一种,但也可以看出层次选择器十分有趣,同时相较于CSS层次选择器来说,它通过元素之间的层次关系来获取元素的方法也更加实用。如果读了这篇文章你感兴趣的话,可以继续了解zepto选择器和zepto框架哦。


目录
相关文章
|
网络协议 网络架构
Ch4.网络层(三)
网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向传输层提供最基本的端到端的数据传送服务。
2496 0
|
JavaScript
JS 数组去重(含简单数组去重【5种方法】、对象数组去重【2种方法】)
JS 数组去重(含简单数组去重【5种方法】、对象数组去重【2种方法】)
846 0
|
安全 Unix 网络安全
Metasploit
Metasploit
262 10
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin协程的优势
【2月更文挑战第14天】 在移动开发领域,性能优化和响应性是至关重要的。随着Kotlin语言在Android平台中的普及,协程作为其提供的一种轻量级线程管理机制,为开发者提供了编写异步、非阻塞代码的能力。本文将深入探讨Kotlin协程在Android应用开发中的优势,通过实例分析展示如何利用协程简化异步流程,提高应用性能,并保证用户界面的流畅性。
|
JSON 缓存 中间件
Go语言网络编程:深入探索HTTP服务器开发
【2月更文挑战第12天】本文将详细探讨使用Go语言开发HTTP服务器的过程,包括HTTP协议的理解、Go标准库中`net/http`包的使用、路由处理、中间件、静态文件服务、JSON处理以及性能优化等方面。通过本文,读者将能够掌握构建高效、可扩展HTTP服务器的关键技术。
|
机器学习/深度学习 PyTorch 算法框架/工具
使用Pytorch处理多维特征的输入
下图这个预测一个人在一年之后得糖尿病的概率的例子,这个时候我们的输入将会有很多的指标。你可以把它看成是我们体检的各种值。最后一排的外代表了他是否会得糖尿病。
242 0
|
存储 安全
109. 我们说StringBuilder是线程不安全的,是什么原因呢?
109. 我们说StringBuilder是线程不安全的,是什么原因呢?
161 0
109. 我们说StringBuilder是线程不安全的,是什么原因呢?
|
存储
如何将多份数据保存在一个excel中?
这是我在数值模拟时,经常存在的问题。 如果输出了非常多的表格(例如,Rmse,Rb,Cp等),我应该怎么把这么多表进行导出?
455 0
如何将多份数据保存在一个excel中?
|
开发工具 git
【Git】Gie基础操作学习笔记01
【Git】Gie基础操作学习笔记01
190 0
|
vlayout Android开发 容器
Vlayout使用详细介绍
Vlayout使用详细介绍 目录介绍 1.Vlayout简单介绍 2.主要功能介绍 2.1 主要功能的思维导图 2.2 主要功能说明 .使用方法与案例 3.1 初始化 3.2 设置回收复用池 3.3 设置RecycleView适配器 3.
2538 0