jQuery .find() vs. context selector

JavaScript performance comparison

Test case created by Brian

Info

comparing selector speed

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<article>
<p>A test</p>
<p><iframe></iframe></p>
<p>This is text</p>
</article>
 
<script>
Benchmark.prototype.setup = function() {
    var article = document.querySelector('article');
   
};
</script>

Preparation code output

A test

This is text

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
find method
var hasFrame = $(article).find('iframe').length > 0 ? true : false;

 
pending…
context method
var hasFrame = $('iframe', article).length > 0 ? true : false;
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

4 comments

PaulTMan commented :

Thanks for this test, it's such a common operation and the non-intuitive answer (feels like two operations rather then one) also makes for better readability.

jkns commented :

The context call just fires the .find() method: "Internally, selector context is implemented with the .find() method, so $('span', this) is equivalent to $(this).find('span')." - http://api.jquery.com/jQuery/

tyujt commented :

tytyu

cinos81 commented :

thank you for this test. 멋있다..

Add a comment