Slide 30 in Paul Irish's blog mentioned:
$('#container').find('div.robotarm')
is faster than $('#container div.robotarm')
Is this true?
Slide 30 in Paul Irish's blog mentioned:
$('#container').find('div.robotarm')
is faster than $('#container div.robotarm')
Is this true?
Maybe in an earlier version of jQuery that was the case. However, the expression
$('#container div.robotarm')
is normalized through jQuery into
$('#container').find('div.robotarm')
So the only reason why $('#container div.robotarm')
should be slower is because of function call overhead. But, that would really be a trivial difference.
If that call wasn't normalized, sizzle
(Resigs css selector engine) would be used to lookup that element (right to left). That of course would be much slower.
Since you asked for opinion, it doesn't matter.
You can always come up with a case where one runs faster than the other in some browser under a certain configuration of the DOM. No need to split hairs.
This is only correct when searching by ID.
But when we search by tag name it returns different results in modern browsers where $('div').find('p')
is slower than $('div p')
because the latter uses querySelector()
.