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

セレクター エンジンは、特定の文字列を使用して DOM ツリー内の要素を選択できるようにする JavaScript ライブラリです (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 に答える