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
Applying multiple css attributes
<style type="text/css">
.hide {
display:none;
}
.show{
display:block;
}
</style>
<ul id="nav">
<li><a href="#">elem1</a></li>
<li><a href="#">elem2</a></li>
<li><a href="#">elem3</a></li>
<li><a href="#">elem4</a></li>
<li><a href="#">elem5</a></li>
</ul>
<script>
// IE only supports setAttribute("className")
var ATTR_CLASS_NAME = (function() {
var el = document.createElement("div");
el.className = "test";
if (el.getAttribute("class") === "test") return "class";
else return "className";
})();
function addClass(el, className) {
var cname = el.className;
if (cname.indexOf(className) == -1) {
el.className = cname + " " + className;
}
}
function addClass2(el, className) {
var cname = el.getAttribute(ATTR_CLASS_NAME);
if (cname.indexOf(className) == -1) {
el.setAttribute(ATTR_CLASS_NAME, cname + " " + className);
}
}
function removeClass(el, className) {
var cname, arr = className.split(" ");
if (cname = el.className) {
if (className) {
cname = " " + cname + " ";
for (var i = arr.length; i--;) {
cname = cname.replace(" " + arr[i] + " ", " ");
}
el.className = cname.substring(1, cname.length - 1);
} else {
el.className = "";
}
}
}
var nav = document.getElementById('nav');
var links = nav.getElementsByTagName('a');
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
.style |
| ready |
.className |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.