find()セレクタ、濫用しないでください.$

1347 ワード

javascriptの基本的なDOM属性と方法を知らないと、jQueryオブジェクトを悪用しやすいです.たとえば:
$('#some').click(function() {            
    alert( $(this).attr('id') );           
});
 jQueryの対象だけで簡単なdom元素の属性を獲得するなら、idのようなものであれば、js原生の方法は全く使えます.
$('#some').click(function() {            
    alert(this.id );           
});           
jQueryは非常に強力なSizleエンジン(jquery 1.3はセレクタエンジンを独立し、Sizleと命名しました.これもjQueryの最初の独立したモジュールです.Sizleの紹介では、最もよく使われているセレクタを使って、前のバージョンのエンジンより速い)セレクタを実現することが第一の目的です.あまり心配しなくてもいいです.でも、少し改善してもいいです.脚本を少し上げてもいいです.
一般的にjQueryではSizleエンジンを使わないでください.もちろん可能であれば、できるだけfindメソッドを使います.たとえば:
$('#some p.someClass').hide();   
$('#some').find('p.someClass').hide();
上の2行のコードの実行結果は全く同じですが、下の実行効率は上のものより高いです.
近代的なブラウザー(IE 6、IE 7を除く)はすべてQuery SelectorAll(jsは元素オブジェクトを取得する方法)がサポートされており、JQueryのSizleエンジンを使用することなくCSSセレクタのようにオブジェクトを取得することができます.jQueryは自分のエンジンを使う前にこの関数が存在するかどうかをチェックします.
IE 6/IE 7については、jQueryがSizleエンジンを使用する必要があります.jQueryはあなたのセレクタを行列に変換し、右から左へと繰り返しマッチングします.正の表現はページの各要素にマッチするので、選択器の階層をできるだけ減らすことができます.一番右のセレクタを使うなど、このルールは私たちのcssの検索ルールと同じです.css選択器を最適化するなら、このルールも分かります.右から左へ反復してマッチングします.
スケール把握:
1、コードを保持するのは簡単です.
2、できるだけfindを使って検索し、ブラウザの原生検索機能を使用する.
3、できるだけ一番右のセレクタ、例えばIDを使います.