31

我已经在很多地方看到了关于John Resig 的名为 Sizzle 的快速新选择器引擎的消息,但我不知道选择器引擎是什么,也没有任何文章解释它是什么。我知道 Resig 是 jQuery 的创造者,并且 Sizzle 是 Javascript 中的东西,但除此之外我不知道它是什么。那么,什么是选择器引擎?

谢谢!

4

5 回答 5

52

选择器引擎用于根据某种查询(通常是 CSS 语法或类似语法)查询页面的 DOM 中的特定元素。

例如,这个 jQuery:

$('div')

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

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

于 2008-08-25T17:03:51.897 回答
19

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

var paragraphs = selectorengine.select('p.firstParagraph')

以 firstParagraph 类选择文档中的所有 P 元素。

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

var checkedBoxes = jQuery('form#login input:checked')

在文档的登录表单中选中所有选中的复选框。

于 2008-08-25T17:07:40.420 回答
9

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

内置选择器引擎的示例:

var foo = document.getElementById('foo');
于 2008-08-25T17:07:50.607 回答
5

此外,Sizzle 是 John Resig 目前正在开发的引擎,以取代 jQuery 已经很棒的选择器引擎。

于 2008-08-25T17:07:35.040 回答
2

选择器引擎用于查找文档中的元素,就像 CSS 样式表一样。目前只有 Safari 有内置的 querySelectorAll 功能,可以做到这一点。对于其他浏览器,您必须使用外部 JavaScript 实现作为LlamaLab Selector或 Sizzle。

于 2009-02-11T14:36:09.633 回答