今天重新看了一些博客对sizzle解析,有了一点新收获。
jquery的sizzle选择器引擎是一个很强大的功能,兼容了很多种选择器匹配的写法,比如可以使用它们的 id, 类, 类型, 属性, 属性值、伪类等来选取元素。废话补多说,下面来对sizzle做个大概的分析:
1、Sizzle整体结构
if(document.querySelectorAll) {
sizzle = function(query, context) {
return makeArray(context.querySelectorAll(query));
}
} else {
sizzle 引擎实现,主要模拟querySelectorAll
}
通过上述代码可以看出,Sizzle选择器引擎的主要工作就是向上兼容querySelectorAll的这个API,假如所有浏览器都支持querySelectorAll,那么Sizzle也就没有存在的必要了 ^_^,当然,
可以详勘: sizzle详解