I am searching for the fastest way to fetch the first visible input of a
page, and currently using:
$(':input:visible')[0]
I thought this could be improved with the :first selector, and indeed it
seems so (as it avoids memory assignments for all matched visible
inputs), so I narrowed it down to:
$(':input:visible:first')[0]
I wanted to investigate the behavior further, so ran a few small tests
against http://docs.jquery.com/DOM/Traversing/Selectors
The page was reset/refreshed for each test, and the profiling is being
done in firebug.
My average results are as follows:
$('*:first')[0]; == 25.014ms, 1168 calls
$('*')[0]; == 160.382ms, 1159 calls
$('div:first')[0]; == 2.979ms, 122 calls
This leads me to believe that despite the :first limit, all elements are
found, and then the first one returned. Does any jQuery selector exist
that *stops* matching after the first match is found? This would avoid
the n*x extra system calls?
~ Brice
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/