jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
Fastest method for acquiring nth child element as a jQuery object reference. Note that the final objective is to have a reference as a jQuery object - using index array requires passing the element back into jQuery to be a valid and equal test. If the id is known and used, the fastest method is to use this method, even though the element must be passed back in to jQuery. However, this is not the fastest method if using the generic ul tag. While it is obvious that reducing the subset with an id selector is faster than not, it may not be so obvious that the fastest method used to find nth child when working with a subset of a single instance (id) is not the same as the fastest method for finding an nth child of an unknown quantity
<div>
<ul id="ul1">unordered list
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
</ul>
<ul>unordered list - nested children
<li>item 1
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 3
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 4
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 5
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 6
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 7
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
</ul>
</div>
<div>
<ul>unordered list
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
</ul>
<ul>unordered list - nested children
<li>item 1
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 3
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 4
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 5
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 6
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 7
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
</ul>
<ul>unordered list
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
</ul>
<ul>unordered list - nested children
<li>item 1
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 3
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 4
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 5
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 6
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 7
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
</ul>
</div>
<ul>unordered list
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
</ul>
<ul>unordered list - nested children
<ul>unordered list - nested children
<li>item 1
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 2
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 3
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 4
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 5
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 6
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
<li>item 7
<ul>
<li>sub item 1</li>
<li>sub item 2</li>
<li>sub item 3</li>
<li>sub item 4</li>
<li>sub item 5</li>
<li>sub item 6</li>
<li>sub item 7</li>
</ul>
</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
Ready to run.
Test | Ops/sec | |
---|---|---|
specifying child selector using ">" and ":nth-child" |
| ready |
specifying child selector using ">" and "eq" |
| ready |
specifying child selector using ">" , and using element array index and rewrapping into jQuery |
| ready |
using eq method chained to > operator (descendant) |
| ready |
using children() method, then specifying child selector, using element selector and "eq" |
| ready |
chaining filter method with li:eq pseudo-selector to children method |
| ready |
chaining filter method with li:nth-child pseudo-selector to children method |
| ready |
using parent child selector and eq method |
| ready |
passing index of element from children method with selector back into jQuery |
| ready |
chaining eq method to children method with selector |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.