jQuery .find() vs. context selector vs non-context selector

JavaScript performance comparison

Revision 72 of this test case created by Faizel

Preparation code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<article>
	<p>A test</p>
	<p><ins></ins></p>
	<p>This is text</p>
   <div class="outerDiv1">
     <span class="div1span"></span>
   </div>
   <div id="outerDiv2">
     <div class="innerDiv2">
        <span class="div2span"></span>
      </div>
  </div>
</article>
      
<script>
Benchmark.prototype.setup = function() {
  var $article = $('article');

};
</script>

Preparation code output

<article> <p>A test</p> <p><ins></ins></p> <p>This is text</p> <div class="outerDiv1"> <span class="div1span"></span> </div> <div id="outerDiv2"> <div class="innerDiv2"> <span class="div2span"></span> </div> </div> </article>

Test runner

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

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
find method (node context)
var has = $($article[0]).find('ins').length > 0 ? true : false;
pending…
find method (jquery context)
var has = $article.find('ins').length > 0 ? true : false;
pending…
context node
var has = $('ins', $article[0]).length > 0 ? true : false;
pending…
context jquery
var has = $('ins', $article).length > 0 ? true : false;
pending…
cascade
var has = $('article ins').length > 0 ? true : false;
pending…
context (no cached)
var has = $('ins', 'article').length > 0 ? true : false;
pending…
select and find
var has = $('article').find('ins').length > 0 ? true : false;
pending…
'parent > child' selector
var has = $('article > ins').length > 0 ? true : false;
pending…
Multiple parent > child selector
var has = $article.find('div.outerDiv2 > div.innerDiv2 > span.div2span ' ).text();
pending…
Multiple parent child selector
var has = $article.find('div.outerDiv2  div.innerDiv2  span.div2span ' ).text();
pending…
Multiple parent child selector using class
var has = $article.find('.outerDiv2  .innerDiv2  .div2span ' ).text();
pending…
find grand child using div root element
var $div = $article.find('.outerDiv2');
var has = $div.find('.div2span ' ).text();
pending…
ind grand child using root element

var has = $article.find('.div2span ' ).text();
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.

0 Comments

A test

This is text