ブラウザが動作する方法は、負荷時に、それは次のように見えますメモリ内のDOMツリーを作成することです:
P
_______________|______________
| |
childNodes attributes
______________|___________ |
| | | title = 'Test paragraph'
'Sample of text ' DIV 'in your document'
|
childNodes
__________|_______
| | |
'HTML you might' B 'have'
あなたがP > DIV > B
を検索するときので、ルックアップはすべてP
の要素を見つけることがあり、 P
内のすべてのDIV要素を見つけて、DIV内のすべてのB
要素を見つけます。ネスティングを深くすればするほど、より多くのルックアップが必要になります。さらに、すべてP > DIV
にはB
が含まれていないことがわかり、すべてがP > DIV
に一致するまで無駄になります。 IDはDOMは非常に高速な検索を持っている、ハッシュテーブルのエントリとして保存することができますので、一意であることが保証されているので、IDによって
ルックアップが高速です。しかし、jQueryの実装はわずかに異なるかもしれませんが、document.getElementByIdは検索時間が最も速いので、$('#my_node_id')
もかなり速くなければなりません。
その結果、あなたのノードがIDを持っていない場合、あなたはありません最寄りの祖先を見つけることができますし、見た目アップが唯一のサブの下で発生する必要があるため、その祖先
#my_node_id > div > b
にあなたのノードの相対を見つけます-tree of #my_node_id
それは速くなりますp > div > b
素晴らしいヒント - すぐに便利になるでしょう – wheresrhys