0

div#some_idDOM 全体のすべての div をスキャンします。

#some_idDOM から直接 ID を取得します。

では、どちらが速いですか?$('div#some_id')または$('#some_id')

4

3 に答える 3

2

最適化セレクターを参照してください。

ID でセレクターを開始するのが常に最善です。

ID のみの選択は、document.getElementById() を使用して処理されます。これはブラウザーにネイティブであるため、非常に高速です。

答えは: $('#some_id') の方が速いはずです。

于 2015-09-02T14:20:58.337 に答える
1

ID は DOM で一意であると想定されているためdiv#some_id、すべての DOM 要素に対して不要なスキャン#some_idを実行し、直接スキャンを実行します。

ここでも結果を確認できます: div-some-id-vs-some-id

于 2015-09-02T14:24:08.523 に答える
1

ここでコンソールで簡単なテストを実行しました。@Ulliが言ったように、#idを使用する方が速いようです。テストコードは次のとおりです。

var perf = performance;

var a = perf.now(); $("#custom-header"); console.log(perf.now() - a);
VM795:2 0.03399999695830047
undefined
var a = perf.now(); $("#custom-header"); console.log(perf.now() - a);
VM796:2 0.0329999893438071
undefined
var a = perf.now(); $("#custom-header"); console.log(perf.now() - a);
VM797:2 0.0329999893438071
undefined
var a = perf.now(); $("#custom-header"); console.log(perf.now() - a);
VM798:2 0.03500000457279384
undefined
var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a);
VM799:2 0.07000000914558768
undefined
var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a);
VM800:2 0.06600000779144466
undefined
var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a);
VM801:2 0.0680000230204314
undefined
var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a);
VM802:2 0.06799999391660094
undefined
var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a);
VM803:2 0.06799999391660094
undefined
于 2015-09-02T14:25:01.190 に答える