1

どちらが速いですか

 <div class="box"><div id="inside"></div></div>

 jquery 

  var div_obox = $('.box');
  var div_Ibox = div_obox.find("#inside") or var div_Ibox = $("#inside");

どちらが速いか知りたいだけですが、IDを使用するのが最も速いことはわかっていますが、変数を使用してもはるかに速いと思います。

.box最初のステートメントで要素が既に見つかっているため、ブラウザーが関数#insideを使用して要素を簡単に見つけることができると期待していました。findと指定しているので、 の中に存在し、ここで.box使用する場合idは、検索プロセスを最初からやり直す必要があると思います。検索機能を使用した Id と var を教えてください。ありがとう

4

3 に答える 3

1

$("#inside")jQuery は、最初のケースで使用する可能性があり、実際に使用する可能性があり、すべてのブラウザーが id と関連要素の間の直接マップを維持するためdiv_obox.find("#inside")、よりも高速です。$('.box > #inside')document.getElementById

ソースコードから:

    // Shortcuts
    if ( (match = rquickExpr.exec( selector )) ) {
        // Speed-up: Sizzle("#ID")
        if ( (m = match[1]) ) {
            if ( nodeType === 9 ) {
                elem = context.getElementById( m );

'#id'論理的な理由がない場合 (つまり、DOM の特定の部分に存在する要素をチェックする場合) は、セレクターに何も追加しないでください。

于 2013-07-08T16:02:26.183 に答える
1

いくつかのテストを実行するだけです...

しかし、私はすべての要素がページ上のIDによってインデックス化されていると信じてい$('#inside')ます$('.box > #inside').$('.box').find('#inside')

于 2013-07-08T16:02:38.457 に答える