zoukankan      html  css  js  c++  java
  • zepto源码--qsa--学习笔记

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

    简述实现原理:

    通过判断传入的参数类型:

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

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

      如果是'tagName',使用getElementsByTagName(tagName)获取元素;

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

    方法开始定义变量备用:

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

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

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

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

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

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

  • 相关阅读:
    Codeforces Global Round 11
    2018-2019 ICPC, Asia Najing
    Codeforces Round #675 (Div. 2) ABCDE
    AtCoder Regular Contest 104 D(卡常)
    Navigator History Location
    键盘移动div
    键盘事件
    事件的传播
    事件的绑定
    事件的委派
  • 原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/6027169.html
Copyright © 2011-2022 走看看