add event listeners to elements with class (v2)

Revision 2 of this benchmark created by Kristoffer Snabb on


Preparation HTML

<div class="clickable"></div>
<div class="clickable"></div>
<div class="clickable"></div>
<div class="clickable"></div>
<div class="clickable"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>

Setup

var cachedElems = document.getElementsByClassName("clickable");

Test runner

Ready to run.

Testing in
TestOps/sec
direct dom
Array.prototype.slice.call(
    document.getElementsByClassName("clickable")
).forEach(
    function(el) {
        el.addEventListener(
            "click", 
            function(evt) {
                console.log(evt)
        })
})
ready
Jquery
$(".clickable").on("click", function(evt) {console.log(evt);})
ready
another javascript
var i,
    elems = document.getElementsByClassName("clickable");

for(i = 0; i < elems.length; i++) {
    elems[i].addEventListener("click", function(evt) {console.log(evt);})
}
ready
Javascript with cached elems
var len = cachedElems.length;
for(i = 0; i < len; i++) {
    cachedElems[i].addEventListener("click", function(evt) {console.log(evt);})
}
ready

Revisions

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

  • Revision 1: published by Kristoffer Snabb on
  • Revision 2: published by Kristoffer Snabb on
  • Revision 3: published by Nicky on
  • Revision 4: published by Nicky on