tags:

views:

answers:

I've seen news of John Resig's fast new selector engine named Sizzle pop up in quite a few places, but I don't know what a selector engine is, nor have any of the articles given an explanation of what it is. I know Resig is the creator of jQuery, and that Sizzle is something in Javascript, but beyond that I don't know what it is. So, what is a selector engine?

Thanks!

+17 A:

A selector engine is used to query a page's DOM for particular elements, based on some sort of query (usually CSS syntax or similar).

For example, this jQuery:

$('div')

Would search for and return all of the <div> elements on the page. It uses jQuery's selector engine to do that.

Optimizing the selector engine is a big deal because almost every operation you perform with these frameworks is based on some sort of DOM query.

A selector engine is a JavaScript library that lets you select elements in the DOM tree using some kind of string for identifying them (think regular expressions for DOM elements). Most selector engines use some variation of the CSS3 selectors syntax so, for example, you can write something like:

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

to select all P elements in the document with class firstParagraph.

Some selector engines also support a partial implementation of XPath, and even some custom syntaxes. For example, jQuery lets you write:

A selector engine is used to find elements in a document, in the same way as CSS stylesheets does. Currently only Safari has the built-in querySelectorAll function which does just that. With other browser you have to use external JavaScript implementations as LlamaLab Selector or Sizzle instead.