find vs selector (v4)

Revision 4 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/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
Find
$('#container').find('div.robotarm');
ready
Descendant Selector
$('#container div.robotarm');
ready
querySelectorAll
$(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.