摘要:
说一下Sizzle中零碎的API。这些API有的被jQuery接管,直接使用jQuery.xxx就可以使用,有的没有被接管,如果要在jQuery中使用,使用方法是jQuery.find.xxx。 具体看一下有哪些API //筛选出elements满足CSS选择器表达式expr的节点【最终返回的是节点 阅读全文
摘要:
Sizzle引擎的主体部分已经分析完毕了,今天为这部分划一个句号。 a. Sizzle解析流程总结 是时候该做一个总结了。Sizzle解析的流程已经一目了然了。 1.选择器进入Sizzle( selector, context, results, seed )函数,先对选择器不符合要求的(比如没有选 阅读全文
摘要:
我们知道Sizzle支持的伪类有有很多,为了便于处理被Sizzle分成了两类:单个单词的伪类“PSEUDO”和多个词语使用“-”链接的“CHILD”。我们下面一一分析。 先看"PSEUDO": a. Sizzle的伪类选择器"PSEUDO" 我们先整体看一下有哪些个伪类 伪类生成匹配器的源码如下: 阅读全文
摘要:
我也看过很多Sizzle源码分析的博客,伪类分割器setMatcher介绍的比较少。但是本人认为这是一个比较重要的难点,我第一遍看源码的时候也忽略了。现在回来看第二遍,一定要把这个东东弄懂。 a. 伪类分割器setMatcher 伪类分隔器对伪类选择器进行分隔处理,返回处理后的最终匹配器。 伪类和其 阅读全文
摘要:
这一节要分析的东东比较复杂,篇幅会比较大,也不知道我描述后能不能让人看明白。这部分的源码我第一次看的时候也比较吃力,现在重头看一遍,再分析一遍,看能否查缺补漏。 看这一部分的源码需要有一个完整的概念后去看才比较容易看懂,所以我们先把整个编译的原理阐述以后再进行解析。 还是以上次的那个CSS选择器为例 阅读全文
摘要:
jQuery源码9600多行,而Sizzle引擎就独占近2000行,占了1/5。Sizzle引擎、jQuery事件机制、ajax是整个jQuery的核心,也是jQuery技术精华的体现。里面的有些策略确实很值得学习,先膜拜之,然后细细学习。 在学习Sizzle引擎之前我们先准备一点知识,和先了解Si 阅读全文
摘要:
前面分析了选择器的结构和几个解析函数,接下来分析jQuery对象的伪类选择器。这里所谓的jQuery对象的伪类选择器就是从已有的jQuery对象(元素集合)中筛选出指定的集合出来。 4. jQuery的伪类选择函数 先混个脸熟,把所有能找到的jQuery的伪类选择器都列出来。 jQuery.fn.e 阅读全文
摘要:
在分析之前说一点题外话。 ownerDocument和 documentElement的区别 ownerDocument是Node对象的一个属性,返回的是某个元素的根节点文档对象:即document对象;documentElement是Document对象的属性,返回的是文档根节点 对于HTML文档 阅读全文
摘要:
1.选择器结构 jQuery的选择器根据源码可以分为几块 init: function( selector, context, rootjQuery ) { ... // HANDLE: $(""), $(null), $(undefined), $(false) ... // Handle HTM 阅读全文
摘要:
几个jQuery基础的属性和函数:noConflict/extend/type 阅读全文