No. Passing a context will actually make it slower. The relevant source code from jQuery is given below with an explanation.
This code basically says:
- If (the selector is an HTML string
or an id, AND (either it's
specifically HTML or no context is
given))
1.a Then do some stuff like calling document.getElementById()
- Otherwise evaluate the context, and then run the selector
And here's the stripped out source..
init: function( selector, context ) {
...
if ( typeof selector === "string" ) {
...
// This gets ignored because we passed a context
// document.getElementById() isn't called directly
if ( match && (match[1] || !context) ) {
...
} else {
elem = document.getElementById( match[2] );
...
}
...
// Either this gets executed if a jQuery wrapped context was passed
} else if ( !context || context.jquery ) {
return (context || rootjQuery).find( selector );
}
// Or this gets executed, if a simple selector was passed as context
} else {
return jQuery( context ).find( selector );
}
...
}
match is the resulting array of a regular
expression to find out if the selector
is either an HTML string, or an id
expression. If it's an HTML string,
then match[1] will be populated.
If it's an id (#someId), then
match[2] will be populated.