sizzle.js学习笔记利用闭包模拟实现数据结构:字典(Map)
这几天学习和查看了jQuery和Property这两个很流行的前端库的御用选择器组件Sizzle.js的源代码,收获还是相对多的!之前一直做使用Java语言开发,其丰富的组件类库使得开发效率那叫一个快呀!突然转来做JavaScript一时间还有点儿不适应(快半年了),不过自从看见那么多漂亮的网站和对JavaScript接触的越来...
分类:
Web程序 时间:
2015-07-01 10:14:41
阅读次数:
136
jQuery凭借选择器风靡全球,各大框架类库都争先开发自己的选择,一时间内选择器变为框架的标配早期的JQuery选择器和我们现在看到的远不一样。最初它使用混杂的xpath语法的selector。第二代转换为纯css的自定义伪类,(比如从xpath借鉴过来的位置伪类)的sizzle,但sizzle也一...
分类:
其他好文 时间:
2015-07-01 08:35:56
阅读次数:
128
话说好久没来园子写博客了,哎,看来懒癌已经到晚期,得治... 进入正题。前段时间看到一段jQuery代码,代码里面用到了jQuery.expr这个对象。完全陌生又木有。翻了下jQuery的官方文档,没找到关于这个对象的解释,不过搜寻了一番过后终于在jQuery的选择器引擎——sizzle的文档...
分类:
Web程序 时间:
2015-05-20 11:12:22
阅读次数:
136
本文是个人对于UT的一些想法和总结,参考时建议请查阅官方资料。转载请注明出处:http://www.cnblogs.com/sizzle/p/4476392.html测试思想编写UT测试代码,通常是为了达到下面几个目的:在程序可以运行前确认部分模块的正确性。实行自动测试,减少人力成本。增加测试手段,...
分类:
其他好文 时间:
2015-05-04 17:34:22
阅读次数:
2963
/*! * jQuery JavaScript Library v1.8.3 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2012 jQuery Foundation and oth...
分类:
Web程序 时间:
2015-04-18 23:33:38
阅读次数:
502
要读懂Sizzle的Compile执行过程,首先需要弄清楚涉及的各个子程序的功能和关键变量和作用,我将逐一对jQuery-1.10.2版本的Compile代码进行说明,望能给予大家帮助。
elementMatcher(matchers)
1、源码
function elementMatcher(matchers) {
return matchers.length > 1 ? funct...
分类:
Web程序 时间:
2015-02-26 20:20:57
阅读次数:
163
function addCombinator(matcher, combinator, base)
1、源码
function addCombinator(matcher, combinator, base) {
var dir = combinator.dir, checkNonElements = base
&& dir === "parentNode", doneName =...
分类:
Web程序 时间:
2015-02-26 20:19:39
阅读次数:
207
什么是jQuery选择器?
jQuery选择器通俗来讲就是一个获取html元素的工具。比如,$("p") 选取 元素,$("p")是jQuery的选择器的写法,这么写就可以获取(选取)html里的元素。
jQuery选择器包括元素选择器、属性选择器、CSS选择器。...
分类:
Web程序 时间:
2015-02-23 15:34:39
阅读次数:
160
原创文章,转载请写明出处,多谢!
以下分析基于jQuery-1.10.2.js版本。
下面将以$("div:not(.class:contain('span')):eq(3)")为例,说明tokenize和preFilter各段代码是如何协调完成解析的。若想了解tokenize方法和preFilter类的每行代码的详细解释,请参看如下两篇文章:
jQuery选择器代码详解(三)——token...
分类:
Web程序 时间:
2015-02-14 01:06:50
阅读次数:
166
原创文章,转载请注明出处,多谢!
Expr.preFilter是tokenize方法中对ATTR、CHILD、PSEUDO三种选择器进行预处理的方法。具体如下:
Expr.preFilter : {
"ATTR" : function(match) {
/*
* 完成如下任务:
* 1、属性名称解码
* 2、属性值解码
* 3、若判断符为~=,则在属性值两边加...
分类:
Web程序 时间:
2015-02-13 21:14:57
阅读次数:
270