jquery选择器匹配方式

一直了解jQuery的优势之一是支持强大的选择器,只知道支持css1-3的几乎所有选择器。没有深入探究过具体选择器内部匹配是怎么实现的,查阅资料才了解这点,整理去下:

1.3版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升,支持了事件委托。

那么Sizzle是什么呢?

我们知道一般选择器的匹配模式,都是一个顺序的思维方式,需要递进式匹配。

Sizzle采取了相反RightToLeft的实现方式。

比如页面现在有一个div嵌套一个span标签,$(‘divspan’)这样的匹配时:

1)一般选择器执行的操作都是先匹配页面中div然后再匹配它的节点下的span标签,之后返回结果。

2)Sizzle会先搜寻页面中所有的span标签,再其后的操作中才去判断它的父节点(包括父节点以上)是否为div,是则压入数组,否则pass,进入下一判断,最后返回该操作序列。

相关推荐