jQuery Parents vs Closest (v44)

Revision 44 of this benchmark created on


Description

Similar to parent vs closest, only this time testing when searching >1 level of the DOM ancestors.

Preparation HTML

<div>
  <table id="end" class="end">
    <tr>
      <td>
        <ul>
          <li>
            1
          </li>
          <li>
            2
          </li>
          <li>
            3
          </li>
          <li>
            4
          </li>
          <li>
            5
          </li>
          <li>
            6
            <ul>
              <li>
                1
              </li>
              <li>
                2
              </li>
              <li>
                2
              </li>
              <li>
                3
                <ul>
                  <li>
                    1
                  </li>
                  <li>
                    2
                  </li>
                  <li>
                    3
                  </li>
                  <li id="start" class="start">
                    4
                  </li>
                  <li>
                    5
                  </li>
                </ul>
              </li>
              <li>
                4
              </li>
              <li>
                5
              </li>
            </ul>
          </li>
          <li>
            7
          </li>
          <li>
            8
          </li>
          <li>
            9
          </li>
          <li>
            10
          </li>
        </ul>
      </td>
    </tr>
  </table>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Parents
$(".start").parents("table").first();
ready
Closest
$(".start").closest("table");
ready
Parents by ID
$("#start").parents("table").first();
ready
Closest by ID
$("#start").closest("table");
ready
ID Parent:first
isDescendant($('table')[0], $("#start")[0]);
function isDescendant(parent, child) {
     var node = child.parentNode;
     while (node != null) {
         if (node == parent) {
             return true;
         }
         node = node.parentNode;
     }
     return false;
}
ready

Revisions

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