Pure js hasClass vs jQuery hasclass (v37)

Revision 37 of this benchmark created by Dennis Allen on


Description

Additional comparison of className and getAttribute("class")

Preparation HTML

<div class="someClass" id="someElement"></div><script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
  var el = document.getElementById('someElement');
  
  function hasClass(el, selector) {
   var className = " " + selector + " ";
  
   if ((" " + el.className + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1) {
    return true;
   }
  
  
   return false;
  }
  
  function hasClass2(el, selector) {
    return el.className.split(/\s+/g).indexOf(selector) !== -1;
  }

function hasClass3(el, selector){
    return (new RegExp('(\\s|^)' + selector + '(\\s|$)').test(el.className));
}

function hasClassString(el, c) {
  var s = el.className, i = s.indexOf(c);
  return i != -1 && (s.charCodeAt(i - 1) || 32) == 32 && (s.charCodeAt(i + c.length) || 32) == 32;
return false;
};

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
jQuery
$(el).hasClass('someClass');
ready
Pure JS (className)
hasClass(el, 'someClass');
ready
Pure JS (split)
hasClass2(el, 'someClass');
ready
RegExp
hasClass3(el, 'someClass');
ready

Revisions

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