jQuery addClass(...) vs attr('class', ...) vs JavaScript className (v19)

Revision 19 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<ol>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
  <li class="remove">
    Item
  </li>
</ol>
<style>
  .addClass {background-color: yellow}
  .attr {background-color: blue}
  .JS {background-color: red}
</style>

Setup

var $li = $('li'), i;

Test runner

Ready to run.

Testing in
TestOps/sec
addClass
$li.removeClass('remove').addClass('add');
ready
attr class
$li.attr('class', 'add');
ready
JS className
for (i = 0; i < $li.length; i += 1) {
  $li[i].className = 'add';
}
ready
JS setAttribute
for (i = 0; i < $li.length; i += 1) {
  $li[i].setAttribute('class', 'add');
}
ready
prop class
$li.prop('class', 'add');
ready

Revisions

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