jQuery を作成する際に最も重要でありながら難しいのは、セレクターです。
正確なセレクターを作成するためのヒントを教えてください。
jQuery を作成する際に最も重要でありながら難しいのは、セレクターです。
正確なセレクターを作成するためのヒントを教えてください。
マニュアルをよく読んでください。
これが私のヒントです...
これをブックマークに保存してください:
http://www.learningjquery.com/2006/11/how-to-get-anything-you-want-part-1
セレクターのパフォーマンス テスト
はい、Chrome の 8 コアの良さでは、すべてが面倒です。しかし、私はクライアントのふりをして、900 mHz の IE6 マシンにアクセスしています (笑わないでください。これをテストするために、これらの 1 つを隣に置いています)。戻ります。
次のコードをいくつか変更しました: $('.class, .class2, .class3').show()
次のようなものに: array.push($(this)) ... $(array).show() そして、100倍高速化
あなたの質問への直接的な答えではありませんが、パフォーマンスに関しては、セレクターが2番目に重要です。
最も重要なのは へのcontextパラメータです$()。指定しない場合、jQuery はデフォルトで に設定しdocumentます。これは、DOMツリー全体をトラバースしていることを意味します。コンテキストを指定すると、jQuery はその下のみをトラバースします。
$('whatever'); // scans the entire `document`
$('whatever', element); // scans only within element
クラス デコレーターを使用して同様の要素を識別し、セレクターを簡単に記述できるようにします。
<div class="clickable">.....</div>
<a class="clickable">...</a>
<span class="clickable">...</span>
$('.clickable').click( function() { some common click action } );
CSS の特異性に注意して、選択する要素が多すぎたり少なすぎたりしないようにしてください。
SelectorGadgetを使用しました。HTML が複雑すぎなければ、かなりうまく機能します。
jQuery に関する John Resig のプレゼンテーション、特に jQuery のパフォーマンスに関するプレゼンテーションをご覧ください。
重要なのは、jQuery がセレクターを左から右ではなく、右から左に処理することです。したがって、セレクターfoo barはすべての要素を選択し、最初にすべての要素を選択してからその要素ごとにすべての要素を選択するのではなく、祖先として要素barを持つ要素をフィルター処理します。この手法により、コストのかかるマージが回避されます。foofoobarfoo
したがって、最後のサブセレクターは最も表現力が高く、他のサブセレクターは表現力が低くてもかまいません。
classとがid最も簡単に計画できますが、属性セレクターと jQuery の疑似疑似クラスにますます注目するようになりました。特に最近欠かせないのは:has()と:not(). 属性セレクターは、使用方法を知っていれば非常に便利ですが、できることはかなり限られています。セレクター エンジンでぜひ見たい改善点の 1 つは、 の否定:has()と の否定です[attribute]。
他のものと同様に、ライブラリを使用する前にその仕組みを理解してください。