jQuery .find() vs descendant selector (v22)

Revision 22 of this benchmark created on


Description

Updated to latest jQuery

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div>
  </div>
  <div id="container">
    <div>
    </div>
    <div>
    </div>
    <div class="robotarm">
    </div>
    <div>
      <div class="robotarm">
      </div>
    </div>
    <div class="robotarm">
    </div>
    <div class="robotarm">
    </div>
    <div>
    </div>
  </div>
</div>
<div>
  <div id="container2">
    <div>
    </div>
    <div>
    </div>
    <div class="robotarm2">
    </div>
    <div>
      <div class="robotarm2">
      </div>
    </div>
    <div class="robotarm2">
    </div>
    <div class="robotarm2">
    </div>
    <div>
    </div>
  </div>
</div>

Setup

var $ = window.$,
        $container = $("#container"),
        container = $container[0],
        noJQContainer = document.getElementById("container"),
        suportQuerySelectorAll = document.querySelectorAll ? true : false;

Test runner

Ready to run.

Testing in
TestOps/sec
Descendant Selector
$('div.robotarm');
ready
Find
$('#container').find('div.robotarm');
ready
Descendant Selector 2
$('#container div.robotarm');
ready
context
$('div.robotarm', $container);
ready
context2
$('div.robotarm', container);
ready
context3
$('div.robotarm', $("#container"));
ready
context4
$('div.robotarm', "#container");
ready
Find 2
$container.find('div.robotarm');
ready
no jQuery querySelectorAll
noJQContainer.querySelectorAll('div.robotarm');
ready
no jQuery querySelectorAll compatibility check
if(suportQuerySelectorAll) noJQContainer.querySelectorAll('div.robotarm');
else $container.find('div.robotarm');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.