jQuery .find() vs descendant selector (v26)

Revision 26 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");
    
    //Added customFind function with querySelectorAll browser support test
    
    Object.prototype.customFind = function() {
        if (document.querySelectorAll) {
            return function(selector) {
                return this.querySelectorAll(selector);
            }
        } else {
            return function(selector) {
                return $(this).find(selector);
            }
        }
    }();

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
querySelectorAll CompatibilityCheked
noJQContainer.customFind('div.robotarm')
ready
no jQuery querySelectorAll with parent
noJQContainer.querySelectorAll('#container div.robotarm');
ready

Revisions

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