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
Similar to parent vs closest, only this time testing when searching >1 level of the DOM ancestors.
<div>
<table 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 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>
<script>
function Closest (selector, context) {
var matchedElement = null;
if (typeof context.closest === 'function') {
matchedElement = context.closest(selector);
}
else {
// IE is why we can't have nice things
var matchedElement = context;
var slicedSelector = selector;
if (selector.charAt(0) === '.') {
slicedSelector = selector.slice(1);
}
if (!matchedElement.classList.contains(slicedSelector)) {
while ((matchedElement = matchedElement.parentElement) && !matchedElement.classList.contains(slicedSelector));
}
return matchedElement;
}
return matchedElement;
};
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
Closest |
| ready |
jClosest |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.