Icarus是我目前匹配精度最高(通过470单元测试保证精度),速度最快(IE67下力压jQuery,其他浏览器都是使用querySelectorAll不分上下)的选择器,并且它全面支持CSS3的所有新增伪类,支持jQuery所有自定义伪类,并且支持对XML的查找,支持XML带命名空间的元素的查找(jQuery只能支持不带命名空间的,并且非常容易报错)。
Icarus与jQuery1.7在slickspeed中的速度比赛结果(数值最大代表越慢):
|
Icarus |
jQuery1.7 |
比率 |
IE7 |
443 |
657 |
1.5 |
IE6 |
975 |
1570 |
1.6 |
如果对比早期的jQuery.42就更不用说了,是其两倍以上。
Icarus最大亮点是对XML的完美支持,为此它用得到xpath与getElementsByTagName,对于命名空间的支持,请使用"aaa\\:bbb"方式来查找。
以下就是Icarus用到原生查找API:
- getElementById
- getElementsByTagName
- getElementsByTagNameNS
- getElementsByClassName
- evaluate (xpath)
- selectNodes (xpath)
- querySelectorAll
Icarus的代码量为930行(不依赖dom的其他模块),jQuery的Sizzle为1500行。
Icarus对CSS3伪类是按W3C的规范来查找,比如:not反选伪类,只支持单个表达式,如div:not(.a),不能用div:not(.a.b),要用就需要多个的反选,div:not(.a):not(.b)。
Icarus虽然支持jQuery的自定义伪类,但并不提倡使用,如位置伪类(:first,:last,:even,:odd,:eq...),我们完全赖以使用标准的子元素过滤伪类要代替(:last-child,:first-child,:nth-child(even)...),对于jQuery的自定义表单伪类(:text,:radio....),我们也完全可以使用属性选择器来代替(input[type=text],input[type=radio]....)。总之,不标准的东西活不长,希望大家切记。
javascript的选择器基本是为了兼容IE678(IE8的querySelectoAll支持种类太少),以后的选择器基本上是用querySelectorAll与evaluate与matchesSelector来写了,CSS4也很快到来了,带来更多伪类,因此jQuery的自定义伪类基本没有存在的必要。
由于选择器的代码近900行,我担心超过贴子长度,请移步到我的博客看吧。
<!--EndFragment-->
分享到:
相关推荐
好用的IP代理工机具-ICARUS,给有需求的小伙伴,希望刷SRC的可以一起交流。
Icarus通常指的是一个网络或系统安全相关的工具,考虑到它与QQ单向好友删除工具的关联,我们可以推测这是一款专门针对QQ社交平台的应用。 QQ是腾讯公司推出的一款即时通讯软件,广泛用于个人和商业沟通。QQ单向好友...
Icarus Verilog的灵活性和易用性使其成为个人学习、学术研究以及小型项目开发的理想选择,尽管对于大规模的工业级设计,可能需要更加强大的商业级仿真工具。 总之,Icarus Verilog以其出色的性能和开源特性,为...
在个人博客的世界里,Hexo作为一个轻量级、高效的静态站点生成器,受到了众多博主的喜爱。而Hexo的众多主题中,"hexo-theme-icarus-master.zip"是一款备受瞩目的主题,它以其简洁美观的设计和强大的功能,为个人博客...
Icarus verilog-20130827_setup(Windows)
标题中的"Icarus-3.3.12.23.zip"表明这是一个软件的压缩包文件,其中包含的版本信息是3.3.12.23,这通常表示该软件的开发迭代到了这个特定的版本。Icarus可能是这款软件的名称,暗示着它可能与天文学、航天或者某种...
1. 安装与初始化:首先确保你的系统已安装Node.js,然后通过npm(Node包管理器)全局安装Hexo,运行`npm install -g hexo-cli`。接着在你想要存放博客源码的目录下初始化Hexo,执行`hexo init`,这将创建一系列必要...
Icarus-3.2.10.21.rar
在数字逻辑设计中,数据选择器(也称为多路复用器或MUX)是一种基本的元件,用于根据控制信号从多个输入中选择一个输出。在这个特定的案例中,我们讨论的是一个16选1的数据选择器,这意味着它有16个输入线(I0到I15...
《Icarus-3.2.7.18:一款高效实用的IP切换工具》 在互联网世界中,IP地址是每个设备在网络上的唯一标识符。对于某些用户来说,频繁更换IP地址的需求尤为常见,例如网络测试、数据分析、网络安全检测或是隐私保护等...
hugo-icarus-theme, Icarus主题 Ruipeng Hexo的移植到 Hugo Icarus依卡路斯是一个针对blogger的反应性和可以定制的主题。 它是一个由 Ruipeng的同名主题的港口。 这个for主题的值得注意的特性是由 Disqus 集成的注释...
Icarus Verilog is a Verilog standard IEEE-1364 compiler that targets Linux but works almost as well on Windows. It's lightweight, free software and includes a virtual machine that simulates the design...
开源工具,支持verilog的编译、仿真和查看波形。工具小巧,运行速到很快。
**Icarus Verilog袖珍仿真软件*...总之,Icarus Verilog是学习和实践Verilog语言的理想选择,无论你是电子工程的学生还是专业的硬件开发者,都可以通过这款软件深入理解和验证你的设计,从而提升你的数字系统设计能力。
本主题主要关注使用Verilog实现全加减器和选择器的设计。 全加减器是数字计算中的基本组件,它可以执行二进制加法或减法。一个全加器可以处理两个输入位和一个进位输入,产生一个和位及一个进位输出。在Verilog中,...
此外,还有许多第三方工具和库与Icarus Verilog集成,如GTKWave(波形查看器)和VUnit(测试框架)等,以提升开发效率。 **5. 开源优势** 开源性质使得Icarus Verilog成为教育、研究和工业应用的理想选择。用户...
综上所述,"Python-Icarus"是一个使用Python3.6后端技术和Vue.js前端框架构建的社区程序,它依赖PostgreSQL进行数据存储,并利用Redis进行高效缓存。通过前后端分离的设计模式,实现了良好的用户体验和强大的后台...
静态网站生成器Hexo的简单,精致,现代主题。 | | :optical_disk: 安装 $ npm install hexo-theme-icarus $ hexo config theme icarus 有关更多详细信息,请参阅《 。 :wrapped_gift: 特征 赛博朋克主题变体 通过...
【icarus-android】是专为Android平台设计的一款高级富文本编辑器,其核心是基于桌面端的优秀富文本编辑器Simditor。这款编辑器旨在提供一个功能强大、用户体验优秀的文本编辑解决方案,尤其适用于需要在移动设备上...
《Icarus Camera Control:开源数码相机控制软件的探索》 在数字摄影的世界里,能够直接与相机进行通信,控制其各项参数,是许多专业摄影师和爱好者梦寐以求的功能。今天,我们要介绍的是一款名为"Icarus Camera ...