什么是选择器引擎?

pbh*_*101 29 javascript jquery glossary resig

我已经看到John Resig的快速新选择器引擎Sizzle出现在很多地方的消息,但我不知道选择器引擎是什么,也没有任何文章解释它是什么.我知道Resig是jQuery的创建者,而Sizzle是Javascript中的东西,但除此之外我不知道它是什么.那么,什么是选择器引擎?

谢谢!

Dav*_*ard 51

选择器引擎用于基于某种查询(通常是CSS语法或类似的)查询页面的DOM以查找特定元素.

例如,这个jQuery:

$('div')
Run Code Online (Sandbox Code Playgroud)

将搜索并返回页面上的所有<div>元素.它使用jQuery的选择器引擎来做到这一点.

优化选择器引擎是一个大问题,因为几乎每个使用这些框架执行的操作都基于某种DOM查询.


dgu*_*lia 19

选择器引擎是一个JavaScript库,它允许您使用某种字符串选择DOM树中的元素来识别它们(想想DOM元素的正则表达式).大多数选择器引擎使用CSS3选择器语法的一些变体,例如,您可以编写如下内容:

var paragraphs = selectorengine.select('p.firstParagraph')
Run Code Online (Sandbox Code Playgroud)

使用类firstParagraph选择文档中的所有P元素.

一些选择器引擎也支持XPath的部分实现,甚至一些自定义语法.例如,jQuery允许您编写:

var checkedBoxes = jQuery('form#login input:checked')
Run Code Online (Sandbox Code Playgroud)

选择文档中登录表单中的所有选中复选框.


Fly*_*wat 9

选择器引擎是遍历DOM以查找特定元素的一种方法.

内置选择器引擎的示例:

var foo = document.getElementById('foo');
Run Code Online (Sandbox Code Playgroud)


Dar*_*opp 5

同样,Sizzle是John Resig目前正在研究的引擎,用于替代jQuery已经非常出色的选择器引擎。