jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.2 选择器表达式

3.2 选择器表达式

为了准确描述Sizzle的实现,避免歧义,需要先约定一些相关术语,具体如表3-1所示。

表3-1 术语和约定

序号         术  语         说明和示例

1       选择器表达式         CSS选择器表达式,例如,"div>p"

2       并列选择器表达式         逗号分割的多个选择器表达式,例如,"div,
p"

3       块表达式         例如,"div>p"中的"div"、"p"

4       块表达式类型         例如,"div"的类型是TAG,".red"的类型是CLASS,"div.red"则是TAG + CLASS。共有8种块表达式类型:ID、CLASS、NAME、ATTR、TAG、CHILD、POS、PSEUDO

5       块间关系符     表示块表达式之间关系的符号,例如,"div>p"中的">"。共有4种块间关系符:">"父子关系、""祖先后代关系、"+"紧挨着的兄弟元素、"~"之后的所有兄弟元素

 

选择器表达式由块表达式和块间关系符组成,如图3-2所示。其中,块表达式分为3种:简单表达式、属性表达式、伪类表达式;块间关系符分为4种:">"父子关系、""祖先后代关系、"+"紧挨着的兄弟元素、"~"之后的所有兄弟元素;块表达式和块间关系符组成了层级表达式。

时间: 2024-09-16 03:24:15

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.2 选择器表达式的相关文章

jQuery技术内幕:深入解析jQuery架构设计与实现原理1

jQuery技术内幕:深入解析jQuery架构设计与实现原理 高 云 著 图书在版编目(CIP)数据 jQuery技术内幕:深入解析jQuery架构设计与实现原理 / 高云著. -北京:机械工业出版社,2013.11 ISBN 978-7-111-44082-6 I. j- II. 高- III. JAVA语言-程序设计 IV. TP312 中国版本图书馆CIP数据核字(2013)第221662号 版权所有·侵权必究 封底无防伪标均为盗版 本书法律顾问 北京市展达律师事务所     本书由阿里巴

基于微服务和Docker容器技术的PaaS云平台架构设计

本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.Kubernetes Storage机制.容器网络实现原理和模型.Docker网络实现.网络插件.

基于云技术的ELC集群式服务器架构设计与实现

基于云技术的ELC集群式服务器架构设计与实现 西安电子科技大学 张文 本文提出了一种基于云技术的弹性负载均衡集群式服务器架构(Elastic and Load Balancing Cluster Server Architecture based on CloudTechnology,ELC集群式服务器架构).本架构以Eucalyptus云计算平台为基础设施,按照计算与存储分离原则整体分为两部分.其中,计算服务系统在Eucalyptus云平台的计算模块基础上,通过虚拟服务器实例方式对外提供服务,

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 导读

   本书由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jQuery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jQuery中的实现技巧和技术精髓,同时本书也对广大开发者如何通过阅读源代码来提升编码能力和软件架构能力提供了指导.     本书首先通过"总体架构"梳理了各个模块的分类.功能和依赖关系,让大家对jQuery的工作原理有大致的印象:进而通过"构造jQuery对象"章节分析了构造函数jQuery()的各种用法和内部构造过程:接

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.8 静态属性和方法

2.8 静态属性和方法 在构造jQuery对象模块中还定义了一些重要的静态属性和方法,它们是其他模块实现的基础.其整体源码结构如代码清单2-3所示. 代码清单2-3 静态属性和方法 388 jQuery.extend({ 389     noConflict: function( deep ) {}, 402     isReady: false, 406     readyWait: 1, 409     holdReady: function( hold ) {}, 418     read

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.2 总体结构

2.2 总体结构 构造jQuery对象模块的总体源码结构如代码清单2-1所示. 代码清单2-1 构造 jQuery 对象模块的总体源码结构  16 (function( window, undefined ) {         // 构造 jQuery 对象  22    var jQuery = (function() {  25       var jQuery = function( selector, context ) {  27              return new jQ

jQuery技术内幕:深入解析jQuery架构设计与实现原理2

第三部分 底层支持模块 第3章 选择器Sizzle 第4章 异步队列Deferred Object 第5章 数据缓存Data  第6章 队列Queue 第7章 浏览器功能测试Support 第3章 选择器Sizzle Sizzle是一款纯JavaScript实现的CSS选择器引擎,它具有以下特性: 完全独立,无库依赖. 相较于大多数常用选择器其性能非常有竞争力. 压缩和开启gzip后只有4?KB. 具有高扩展性和易于使用的API. 支持多种浏览器,如IE 6.0+.Firefox 3.0+.Ch

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.9 Sizzle.selectors

3.9 Sizzle.selectors 对象Sizzle.selectors包含了Sizzle在查找和过滤过程中用到的正则.查找函数.过滤函数,其中包含的属性见图3-1,源码结构见代码清单3-1. 3.9.1 Sizzle.selectors.order 表达式类型数组Sizzle.selectors.order中定义了查找单个块表达式时的查找顺序,依次是ID.CLASS.NAME.TAG.其中,CLASS需要浏览器支持方法getElementsByClass Name().查找顺序综合考虑了

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.4 Sizzle( selector, context, results, seed )

3.4 Sizzle( selector, context, results, seed ) 函数Sizzle( selector, context, results, seed )用于查找与选择器表达式selector匹配的元素集合.该函数是选择器引擎的入口. 函数Sizzle( selector, context, results, seed )执行的6个关键步骤如下: 1)解析块表达式和块间关系符. 2)如果存在位置伪类,则从左向右查找: a.?查找第一个块表达式匹配的元素集合,得到第一个

jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.13 总结

3.13 总结 在本章中,对选择器引擎Sizzle做了完整的介绍和分析,总体源码结构见代码清单3-1,方法功能和调用关系见图3-1.在本章的最后还介绍和分析了jQuery对Sizzle的整合和扩展. 选择器表达式由块表达式和块间关系符组成.块表达式分为3种:简单表达式.属性表达式.伪类表达式:块间关系符分为4种:">"父子关系.""祖先后代关系."+"紧挨着的兄弟元素."-"之后的所有兄弟元素:块表达式和块间关系符组成了