To $('#foo p') or to $('p', $('#foo'))

24 February 2009   2 comments   JavaScript

Mind that age!

This blog post is 11 years old! Most likely, its content is outdated. Especially if it's technical.

For the performance interested jQuery users please check out this thread

For the impatient, read Stephens reply He benchmarked what I asked and concluded that $("p", $("#foo")) is much faster in jQuery 1.3.2. I've been coding this style in jQuery for all recent projects so I'm happy with this outcome.


John Resig himself joined in on the discussion and had this to say:

"You should always use $("#foo").find("p") in favor of $("p", $("#foo")) - the second one ends up executing $(...) 3 times total - only to arrive at the same result as doing $("#foo").find("p")."


Not only did John join in on the discussion but it also made him work on jQuery 1.3.3 (not yet released at the time of writing) so that it doesn't matter which format you use you get the same performance. See the benchmark here



Why not simply: $("#foo").find("p");

The syntax is more clear and readable, and jQuery isn't called twice.

Performance wise, they are practically equivalent.

Peter Bengtsson

See my update in the blog post.

Your email will never ever be published

Related posts

Propeller Island City Lodge Orange Room 23 February 2009
Sandisk SSD v/s HDD 04 March 2009
Related by Keyword:
Benchmark compare Highlight.js vs. Prism 19 May 2020
From jQuery to Cash 18 June 2019
Django ORM optimization story on selecting the least possible 22 February 2019
Experimenting with Nginx worker_processes 14 February 2019
The ideal number of workers in Jest 08 October 2018