jQuery代码优化之选择符 。
Sizzle的运行机制
jQuery从1.3开始把根据选择符表达式查找元素的代码独立出来,也就是Sizzle引擎。当我们把一个选择符表达式(比如"#id"、".class"、":nth-child(2)")传递给$()函数时,Sizzle在内部会优先利用浏览器原生支持的DOM方法来查找元素,以求得最大的执行速度。以下就是Sizzle会优先选用的几个标准的原生方法(各个方法的用途不再赘述): 代码如下:
getElementById() getElementsByTagName() getElementsByClassName() querySelectorAll()
优化示例
举个例子,假设我们要取得页面表单中的所有的文本框,即:
<input type="text">
可以使用两个选择符:
$('input[type="text"]') $('input:text')第一个选择符是标准的CSS属性选择符,第二个选择符是自定义选择符。根据前面对Sizzle引擎的分析可知,在大多数现代浏览器(支持原生querySelectorAll()方法的浏览器)中,第一个选择符的速度比第二个要快很多。
再举一个例子。假设有下面两个jQuery查询:
$('input').eq(1) $('input:eq(1)')
网友评论文明上网理性发言 已有0人参与
发表评论: