したがって、次のような JavaScript/jQuery があります。
var $foo = $('#bar');
$foo.hide();
私は、jQuery が指定されたセレクターで動作し、結果の DOM 要素をvar $foo
... に保存するという仮定の下で動作してきました。
しかし、呼び出しによって jQuery は要素$foo.hide()
を再シークするのでしょうか?#bar
したがって、次のような JavaScript/jQuery があります。
var $foo = $('#bar');
$foo.hide();
私は、jQuery が指定されたセレクターで動作し、結果の DOM 要素をvar $foo
... に保存するという仮定の下で動作してきました。
しかし、呼び出しによって jQuery は要素$foo.hide()
を再シークするのでしょうか?#bar
いいえ、 $(elem) が呼び出されたときに参照が行われます。これが、var
要素への参照を格納するために使用される理由です。への参照を保存することは常にベスト プラクティスです。var
これにより、次回コードが使用されたときに古い参照が使用され、DOM を再度検索する必要がなくなります。
//reference
var a = $('#id');
//use
a.hide();
//same reference, use again
a.show();
私の理解では、jQuery オブジェクトを var として設定すると、オブジェクトがキャッシュされるため、何かを実行するために使用する必要があるたびに jQuery オブジェクトを再構築することはありません。
これに関するいくつかの記事、これは私がGoogleから見つけた最初の記事です
ただし、 document.getElementById('bar') を直接参照していると思います$('#bar')
ので、あまり構築されていないためかなり高速ですが、オブジェクトの配列がある場合は高速です。$('.class tagType')