Pure js hasClass vs jQuery hasclass (v34)

Revision 34 of this benchmark created on


Description

Additional comparison of className and getAttribute("class")

Preparation HTML

<div class="someClass" id="someElement"></div><script src="https://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) {
   var className = " " + selector + " ";
   var elemClassName = el.getAttribute("class");
   if ((" " + elemClassName + " ").replace(/[\n\t]/g, " ").indexOf(className) > -1) {
    return true;
   }
  
   return false;
  }
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 (getAttribute)
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.