jQuery .first() vs :first selector (v5)

Revision 5 of this benchmark created on


Preparation HTML

<table>
  <tr>
    <td>
      Hdr 1
    </td>
    <td>
      Hdr 2
    </td>
    <td>
      Hdr 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
  <tr>
    <td>
      Col 1
    </td>
    <td>
      Col 2
    </td>
    <td>
      Col 3
    </td>
  </tr>
</table>
<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
<table>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
  </script>

Test runner

Ready to run.

Testing in
TestOps/sec
.first()
$("table").find("tr").first();
ready
:first()
$("table").find("tr:first");
ready
.eq(0)
$("table").find("tr").eq(0);
ready
:nth(0)
$("table").find("tr:nth(0)");
ready
querySelector
document.querySelector("table tr")
ready
querySelector 2
var tables = document.querySelectorAll("table");
var stuff = [];
for (var i = 0, ii = tables.length; i < ii; i++) {
    stuff.push(tables[i].querySelector('tr'));
}
ready

Revisions

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