一,sizzle的基本原理sizzle是jquery选择器引擎模块的名称,早在1.3版本就独立出来,并且被许多其他的js库当做默认的选择器引擎。首先,sizzle最大的特点就是快。那么为什么sizzle当时其他引擎都快了,因为当时其他的引擎都是按照从左到右逐个匹配的方式来进行查找的,而sizzle刚...
分类:
Web程序 时间:
2014-07-10 12:13:25
阅读次数:
249
/** * Utility function for retrieving the text
value of an array of DOM nodes * @param {Array|Element} elem */ getText =
Sizzle.getTex...
分类:
Web程序 时间:
2014-06-07 03:37:39
阅读次数:
240
代码很简单直接上源码
function winnow( elements, qualifier, not ) {
//如果qualifier是函数
if ( jQuery.isFunction( qualifier ) ) {
//not为true时,返回qualifier返回false的elements
//not为false时,返回qualifier返回true的elements...
分类:
Web程序 时间:
2014-05-21 07:15:11
阅读次数:
317
上篇说道,tokenize方法会把selector分割成一个个selector逻辑单元(如div a是两个逻辑单元)并为之片段赋予对应类型的过滤函数。
for ( type in Expr.filter ) {
if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||...
分类:
Web程序 时间:
2014-05-18 13:42:59
阅读次数:
393
当选择表达式不符合快速匹配(id,tag,class)和原生QSA不可用或返回错误时,将调用select(selector, context, results, seed)方法,此方法迭代DOM选择、过滤元素,
在DOM树非常大的时候为了保证效率,应该保证html设计的合理,尽量使用可快速匹配(id,tag,class)的表达式,其次是QSA支持的选择器,尽量不要使用jquery扩展的selec...
分类:
Web程序 时间:
2014-05-15 05:22:20
阅读次数:
327
setDocument = Sizzle.setDocument = function( node ) {
var hasCompare,
//node为Element时返回node所属document
//node为Document时返回node
//node为空时返回window.document
doc = node ? node.ownerDocument || node...
分类:
Web程序 时间:
2014-05-11 22:41:15
阅读次数:
459
(1)whitespace = "[\\x20\\t\\r\\n\\f]";
匹配css3中空白符.
\x20:空格;\t水平制表符(tab);\r\n回车换行\f换页符
(2)characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"
匹配\后任意字符,字母或数字或-,ascii值非\00-\xa0范围内的字符
(3)i...
分类:
Web程序 时间:
2014-05-10 10:21:32
阅读次数:
404
Sizzle中恐怖的正则.
字面量的正则也许还好理解,那么由字符串编译而成的正则呢.
\\和\\\由字符'\\\\'编译而成的正则是/\\/,第一个\转义第两个\,所以其匹配一个\字符(这个\字符是代表字符本身)
Test_Script
var s = '\\' ;
alert(s); // '\'
var rs = '\\\\' ;
var m...
分类:
Web程序 时间:
2014-05-10 09:52:37
阅读次数:
427
Sizzle( selector, context, results, seed )的关键步骤
1,传入的context对应的context和当前document是否一致,不一致调用setDocument()重新设置document,用于frame的情况.
2,如果context为空修正context为document
3,selector如果不是字符串或者context不是Element或...
分类:
Web程序 时间:
2014-05-09 00:32:34
阅读次数:
400
function Sizzle( selector, context, results, seed )
{
var match,
elem, m, nodeType,
// QSA vars
i, groups, old, nid, newContext, newSelector;
...
分类:
Web程序 时间:
2014-05-07 05:27:07
阅读次数:
426