jquery源码解析之选择器实现
来源:互联网 发布:自学武术软件 编辑:程序博客网 时间:2024/06/05 09:24
为什么$取得的对象要设计成数组的形式?
jquery内部采用了一种“类数组对象”的方式作为存储结构,既可以像对象一样处理jQuery操作,也可以像数组一样使用push、pop、shift、sort、each、map等类数组的方法操作jquery对象。
2.Sizzle选择器
支持九种方式的处理:
// 1.$(document) // 2.$(‘<div>’) // 3.$(‘div’) // 4.$(‘#test’) // 5.$(function(){}) // 6.$("input:radio", document.forms[0]); // 7.$(‘input’, $(‘div’)) // 8.$() // 9.$("<div>", { // "class": "test", // text: "Click me!", // click: function(){ $(this).toggleClass("test"); } // }).appendTo("body"); // 10$($(‘.test’))
sizzle主要是针对于复杂选择器表达式,且在不支持querySelectorAll情况下,有一个对象用来记录跟选择器相关的属性以及操作,sizzle查找的顺序是从右到左进行匹配的。类似$(‘div a’)这样的匹配,先搜寻页面中所有的a标签,再往后判定它的父节点是否为div,一层一层向上过滤。:
relative = {
“>”: { dir: “parentNode”, first: true },
” “: { dir: “parentNode” },
“+”: { dir: “previousSibling”, first: true },
“~”: { dir: “previousSibling” }
}
一般对于伪类来说,只能从左到右进行匹配,而从性能触发,采取从右到左。
阅读全文
0 0
- jquery源码解析之选择器实现
- 实现自己的Jquery之选择器
- 实现自己的Jquery之选择器
- jQuery 源码分析 选择器
- jQuery源码分析之Sizzle--css选择器引擎
- jquery选择器之简单选择器
- jQuery选择器之基本选择器
- jQuery选择器之层次选择器
- jquery选择器之属性选择器
- jquery选择器之层次选择器
- jquery选择器之层次选择器
- jquery选择器之属性选择器
- jQuery选择器之过滤选择器
- jQuery选择器之表单选择器
- jQuery选择器之id选择器
- jQuery选择器之元素选择器
- jQuery选择器之层级选择器
- jQuery选择器之层级选择器
- exec (@sql) 接收返回值
- 初次加载tomcat,Server Tomcat v8.0 Server at localhost failed to start
- 【51nod 1288 汽油补给 】 贪心 & 思维
- 抓包工具
- SpringBoot的RabbitMQ消息队列: 一、消息发送接收第一印象
- jquery源码解析之选择器实现
- iOS实现数据刷新
- 混淆出现Can't process class [com/xxx/xxx/xxx/xxx.class] (Unknown verification type的原因所在
- 使用R计算相关系数
- Oracle中partition for使用的一些简单的理解
- OpenGL 错误获取glGetError()
- DOM操作和BOM操作
- StringBuffer的用法
- Vue.js的安装与介绍