DOM 要素を参照するコードを記述する際には、留意すべき考慮事項が数多くあります。しかし、それは基本的にいくつかの単純なポイントに要約されます -
a. ローカル関数内では、常に参照をクリアします
var menu = $('body #menu');
// do something with menu
.
.
.
menu = null;
b. 要素データの一部として参照を保存しない.data()
c. クロージャー/インライン ハンドラー内で DOM 参照を使用しないようにしてください。代わりに識別子を渡します。
function attachClick(){
var someDiv = $('#someDiv');
someDiv.click(function(){
var a = someDiv....;
//Wrong. Instead of doing this..
});
someDiv.click(function(){
var a = $('#someDiv');
//Pass the identifier/selector and then use it to find the element
});
var myFunc = function(){
var a = someDiv;
//using a variable from outside scope here - big DON'T!
}
}
はい、要素を検索するとページが遅くなる可能性があると主張できますが、パフォーマンスヒットと比較すると、遅延は非常に最小限です。大きな単一ページのアプリケーションで。したがって、#3 は、長所と短所を比較検討した後にのみ使用する必要があります。(私の場合はかなり役に立ちました)
アップデート
d. 匿名関数を避ける - イベント ハンドラーとローカル関数に名前を付けると、ヒープ スナップショットのプロファイリングや参照を行う際に非常に役立ちます。