zepto源码--filtered, contains,funcArg,setAttribute,className,deserializeVale--学习笔记
几个方法
1、filtered
目标是对节点按照一定的选择器进行过滤。
如果传入了过滤选择器,则在nodes节点下,选择符合选择器的节点;
如果没有传入选择器,则返回节点本身,转化为zepto节点。
2、$.contains,是一个对外暴露的方法。
检查父节点是否包含给定的dom节点,如果两者是相同的节点,则返回 false
。
两种情况:
a)、如果浏览器支持document.documentElement.contains方法,在两者节点不同的情况下,调用parent.contains(node)函数,判断父节点是否包含给定的dom节点。
b)、如果不支持原生contains的方法,进行循环判断,将节点自身的父节点赋值给自身,判断两者是否相等,如果判断到相等的时候,返回true,否则返回false。
3、funcArg,处理传入参数为函数的情况,为内部使用函数。
参数context为上下文环境,arg如果为函数的话,则执行arg函数,并绑定上下文为context
4、setAttribute,设置或者删除属性
如果没有传入value,则将传入节点的name属性删除,否则就是对传入节点设置那么属性为value;
5、className
刨除svg格式不谈,该函数目的就是依据value有没有传入参数,没传value,即为获取传入节点的className; 传参的话即为设置对应节点的className。
6、deserializeValue
简单点说,就是反序列化,不展开详细解释,主要就是三元运算符?:的使用,最终是将字符串数字转为数字,字符串'true'或'false'转为对应的true和false,字符串‘null’转为null,json字符串转化为json对象。
这6个函数只有$.contains属于对外暴露的方法,其他5个函数属于zepto源码内部使用方法,是为简化其他方法进行的函数封装。
zepto源码--filtered, contains,funcArg,setAttribute,className,deserializeVale--学习笔记的更多相关文章
- zepto源码--核心方法10(位置)--学习笔记
今天基本上就是zepto学习笔记的最后一篇了,介绍一下有关位置的函数,position, offset, scrollLeft, scrollTop scrollLeft 如果所选取的包装集不存在,则 ...
- zepto源码--核心方法4(包装)--学习笔记
主要介绍一下wrap, wrapAll, wrapInner, unwrap方法. wrapAll 在所有匹配元素外面包一个单独的结构.结构可以是单个元素或 几个嵌套的元素,并且可以是html字符串或 ...
- HashMap源码剖析及实现原理分析(学习笔记)
一.需求 最近开发中,总是需要使用HashMap,而为了更好的开发以及理解HashMap:因此特定重新去看HashMap的源码并写下学习笔记,以便以后查阅. 二.HashMap的学习理解 1.我们首先 ...
- JGUI源码:实现简单MVVM单项绑定学习笔记(15)
前面几节都是jquery界面方面的东西,本节研究些数据方面的东西:MVVM. MVVM由三部分组成:Model <=> ViewModel <=> View,当Model数据改 ...
- 读Zepto源码之属性操作
这篇依然是跟 dom 相关的方法,侧重点是操作属性的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...
- 读Zepto源码之样式操作
这篇依然是跟 dom 相关的方法,侧重点是操作样式的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2. ...
- zepto源码--定义变量--学习笔记
主要了解一下zepto定义的初始变量. 逐一以自己的理解解析,待到后面完全透彻理解之后,争取再写一遍zepto源码学习的文章. 其中的undefined确实不明白为什么定义这么个变量在这里. docu ...
- 读 Zepto 源码之集合元素查找
这篇依然是跟 dom 相关的方法,侧重点是跟集合元素查找相关的方法. 读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zept ...
- Zepto源码分析(一)核心代码分析
本文只分析核心的部分代码,并且在这部分代码有删减,但是不影响代码的正常运行. 目录 * 用闭包封装Zepto * 开始处理细节 * 正式处理数据(获取选择器选择的DOM) * 正式处理数据(添加DOM ...
随机推荐
- HealthKit开发教程之HealthKit的辅助数据
HealthKit开发教程之HealthKit的辅助数据 在HealthKit中除了主要数据之外,还有6个辅助数据分别为:体积类型数据.压力类型数据.时间类型数据.温度类型数据.标量类型数据和电导率类 ...
- http://jingyan.baidu.com/album/d8072ac47baf0eec95cefdca.html?picindex=4
http://jingyan.baidu.com/album/d8072ac47baf0eec95cefdca.html?picindex=4
- http://blog.csdn.net/congcong68/article/details/39252897
http://blog.csdn.net/congcong68/article/details/39252897
- 分类 kNN
#coding=utf-8 from numpy import * import operator from os import listdir import matplotlib import ma ...
- Android 第三方
把优酷.土豆等取出它们真是的视频播放地址:http://vparser.com/ volley 项目地址 https://github.com/smanikandan14/Volley-demo (1 ...
- 【BZOJ】1452: [JSOI2009]Count
http://www.lydsy.com/JudgeOnline/problem.php?id=1452 题意:n×m的矩阵上每个点有个颜色,现在有q个操作:1 x y c 将点(x,y)的颜色改为c ...
- COJ1012 WZJ的数据结构(十二)
今天突然想写个树套树爽一爽(1810ms) 写的是树状数组套线段树(动态开节点) #include<cstdio> #include<cctype> #include<c ...
- Mina小例子
此例子解决了中文乱码问题. 客服端: MimaTimeClient.java package minaExamle.client; import java.net.InetSocketAddress; ...
- filesize返回的是以字节为单位的数据也可以使之处理数字
1.文件的属性信息获取 首先文件具有类型,在linux下边,有block(块设备,如磁盘分区.CD-ROM).char(以字符为输入的设备,如键盘.打印机).dir(目录类型,目录也是文件的一种).f ...
- MemPool
腾讯笔试题,设计内存池,alloc和free都是O(1). 和LRUCache类似,这里用了一个list表示可用的空间,用一个map来记录这块内存是否已分配,这样free的时候才可能O(1). cla ...