2008-08-25 5 views
22

J'ai vu des nouvelles de John Resig's fast new selector engine named Sizzle apparaître dans un certain nombre d'endroits, mais je ne sais pas ce qu'est un moteur de sélection, et aucun des articles n'a donné une explication de ce que c'est. Je sais que Resig est le créateur de jQuery, et que Sizzle est quelque chose en Javascript, mais au-delà je ne sais pas ce que c'est. Alors, qu'est-ce qu'un moteur de sélection?Qu'est-ce qu'un moteur de sélection?

Merci!

Répondre

46

Un moteur de sélection est utilisé pour interroger le DOM d'une page pour des éléments particuliers, en fonction d'une sorte de requête (généralement une syntaxe CSS ou similaire).

Par exemple, cette jQuery:

$('div') 

rechercherais et retourner tous les <div> éléments sur la page. Il utilise le moteur de sélection de jQuery pour le faire.

L'optimisation du moteur de sélection est importante car presque toutes les opérations que vous effectuez avec ces frameworks sont basées sur une sorte de requête DOM.

2

En outre, Sizzle est le moteur sur lequel John Resig travaille actuellement pour remplacer le moteur de sélection déjà fantastique de jQuery.

18

Un moteur de sélection est une bibliothèque JavaScript qui vous permet de sélectionner des éléments dans l'arborescence DOM en utilisant une sorte de chaîne pour les identifier (pensez aux expressions régulières pour les éléments DOM). La plupart des moteurs de sélection utilisent une certaine variation des sélecteurs CSS3 syntaxe que si, par exemple, vous pouvez écrire quelque chose comme:

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

pour sélectionner tous les éléments P dans le document avec la classe firstParagraph.

Certains moteurs de sélection prennent également en charge une implémentation partielle de XPath, et même certaines syntaxes personnalisées. Par exemple, jQuery vous permet d'écrire:

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

Pour cocher toutes les cases cochées dans le formulaire de connexion du document.

+0

Je suppose que vous avez juste besoin d'inclure le fichier "js" dans votre page. Avez-vous besoin de JQuery ou d'une autre bibliothèque pour l'utiliser? – Tebo

6

Un moteur de sélection est un moyen de parcourir le DOM à la recherche d'un élément spécifique.

Un exemple d'un moteur intégré de sélection:

var foo = document.getElementById('foo'); 
+0

merci pour le bon exemple 'built-in selector engine' j'ai lu quelques réponses et je me demande encore,' getElementById' est un moteur de sélection ou pas (il ressemble, mais trop évident donc personne ne mentionne: D) – hqt

1

Un moteur de sélection est utilisé pour trouver des éléments dans un document, de la même manière que feuilles de style CSS ne. Actuellement, seul Safari a la fonction intégrée querySelectorAll qui fait exactement cela. Avec un autre navigateur, vous devez utiliser des implémentations JavaScript externes comme LlamaLab Selector ou Sizzle à la place.