zepto源码--qsa--学习笔记

zepto内部选择器qsa方法的实现。css

简述实现原理:正则表达式

经过判断传入的参数类型:数组

  若是是'#id',则使用getElementById(id)来获取元素,而且将结果包装成数组形式;blog

  若是是'.class',则使用getElementsByClassName(class)获取元素;element

  若是是'tagName',使用getElementsByTagName(tagName)获取元素;zepto

  若是参数是复杂的css选择器,则使用element.querySelectorAll(css选择器)来获取元素。get

方法开始定义变量备用:class

  found,用于存储获取到的元素节点;变量

  maybeID,经过传入的参数第一个字符是否为'#',判断当前的参数是id类型;原理

  maybeClass,参数的第一个字符若是是'.',判断当前的参数是className;

  nameOnly,无论传入什么养的参数,只保留纯粹的字母参数,去除掉'.'或者'#';

  isSimple,根据前面定义的simpleSelectorRE正则表达式,判断当前的参数是否为简单的选择器。

return的结果就是qsa方法的返回结果,依然使用了大量的三元运算符?:,逐行解析以下:

相关文章
相关标签/搜索