2011-01-18 8 views
3

マルチパートjQueryセレクタの検索の標準方向とは何ですか?jQueryのセレクタDOMのトラバーサル方向と効率

ケース

$('#myTable tr.selected'); 

は最初#myTableを検索し、その後、tr.selected検索のみをそのテーブル内にありますか?

または、すべてのページのtr.selectedを最初に検索し、2番目の検索でそれぞれの親ノードを確認していますか?

答えて

1

#myTableの最初検索しtr.selected検索はまず、それがmyTableのIDを持つ要素を検索し、その子孫を発見するだけでテーブル内

ありますselectedクラスの「tr」タグ

2

this talk by John Resig on the subjectをご覧ください。彼は、あなたが期待するかもしれないものに反して、セレクタエンジンはtr.selectedを検索して、祖先が#myTableと一致するかどうかを確認します、と言っています。

+0

これはCSSがうまく動作する方法です。これが私に質問を導くものです。これは、一般的に、セレクタに提供する情報が少ないほど効率が良いことを示しています。 – fearofawhackplanet

+0

私は確かに分かりません。 jQueryはSizzleを使用しており、Sizzleは利用可能な場合は 'querySelectorAll'を使用します。答えは「それに依存する」かもしれません。異なるブラウザでは、処理が異なる場合があり、最適化が異なる場合があります。 'querySelectorAll'を使用しているときに、ユーザーエージェントがDOMをどのようにトラバースすべきかを指定する標準がない限り、 –

+0

私は上記のあなたのコメントが正しいと思います。ビデオ*(私はまだそれを見ていないが、それを投稿していただきありがとうございます)*では、ジョンは競合するjavascriptベースのセレクタエンジン間の比較について話しているに違いありません。そうですか? – user113716

関連する問題