天天看点

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

<b>3.2 选择器表达式</b>

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

表3-1 术语和约定

序号         术  语         说明和示例

1       选择器表达式         css选择器表达式,例如,"div&gt;p"

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

p"

3       块表达式         例如,"div&gt;p"中的"div"、"p"

4       块表达式类型         例如,"div"的类型是tag,".red"的类型是class,"div.red"则是tag + class。共有8种块表达式类型:id、class、name、attr、tag、child、pos、pseudo

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

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

继续阅读