jQuery selector vs hasClass (v27)

Revision 27 of this benchmark created on


Description

Test which is faster, a selector including the class compared to hasClass.

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div class="foo"></div>
<script>
  var found = false;
  $("body").addClass("foobar");
</script>

Setup

var cachedBody = document.body,
        cachedIndexOf = Array.prototype.indexOf;

Test runner

Ready to run.

Testing in
TestOps/sec
selector
if ($("body.foobar").length) {
 found = true;
}
ready
hasClass
if ($("body").hasClass("foobar")) {
 found = true;
}
ready
native
if (document.body.className.indexOf('foobar') > -1) {
 found = true;
}
ready
Native cached body
if (cachedBody.className.indexOf('foobar') > -1) { 
 found = true;
}
ready
Native cached body + indexOf
if (cachedIndexOf.call(cachedBody.className, 'foobar') > -1) { 
 found = true;
}
ready

Revisions

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