のようなセレクター'#theId'
は、jQuery が使用するため、ドキュメントをスキャンしませんdocument.getElementById
。
ID を知っている要素を探したい場合は、その親がわかっている場合でも、常に を使用します$('#theid')
。
実際、親をコンテキストとして提供すると、jQuery は呼び出され、その後、見つかった要素が親に含まれていることを確認しますdocument.getElementById
。したがって、これははるかに遅くなります。
ソースコードから:
// Speed-up: Sizzle("#ID")
if ( (m = match[1]) ) {
if ( nodeType === 9 ) {
elem = context.getElementById( m );
// Check parentNode to catch when Blackberry 4.6 returns
// nodes that are no longer in the document #6963
if ( elem && elem.parentNode ) {
// Handle the case where IE, Opera, and Webkit return items
// by name instead of ID
if ( elem.id === m ) {
results.push( elem );
return results;
}
} else {
return results;
}
} else {
// Context is not a document
if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
contains( context, elem ) && elem.id === m ) {
results.push( elem );
return results;
}
}
同様に、クラスを持つすべての要素を選択する場合は、親を指定しないでください。これは役に立ちません。
あなたの場合、親を使用してセットを制限したいように見えるので、単に使用します
$(".valueElement", "#parent");