getElementById vs. getElementsByClassName vs. querySelector vs. jQuery vs xpath (v79)

Revision 79 of this benchmark created by Joshua Koudys on


Description

Changes to rev 26 (rev 27 is worse):
- repositioning xpath
- remove foo + checks for it (search for selecting elem by id once is enough)
- remove getElementById("poo") in querySelector (Class) & jQuery Class Selector for a true comparison of the algorithms.
- jQuery Class Selector -> jQuery w. querySelector
- added real jQuery ClassSelector

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<p id="bar" class="my-bar">
  Bar
</p>
<div id="poo" class="my-poo">
  <div id="par" class="my-bar">
    <div id="paz" class="my-bar">
      <span id="baz" class="my-baz">
        Baz
      </span>
    </div>
  </div>
</div>

Setup

$("#bar");

Test runner

Ready to run.

Testing in
TestOps/sec
getElementById
var bar = document.getElementById("bar");
ready
querySelector (ID)
var bar = document.querySelector("#bar");
ready
jQuery ID Selector
var bar = $("#bar");
ready
xpath eval
var bar = document.evaluate("//*[@id='bar']",document,null,9,null).singleNodeValue;
ready
getElementsByClassName
var baz = document.getElementsByClassName("my-baz");
 
ready
querySelector (Class)
var baz = document.querySelector(".my-baz");
 
ready
jQuery ClassSelector
var baz = $(".my-baz");
 
ready
jQuery w. querySelector
var baz = $(document.querySelector(".my-baz"));
ready
getElementsByName
document.getElementsByName("p");
ready

Revisions

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