hasClass-vs-is (v12)

Revision 12 of this benchmark created on


Preparation HTML

<span class="class1 class2 class3 class4">Element</span>
<span class="class1">Element</span>
<span class="class2">Element</span>
<span class="class3">Element</span>
<span class="class4">Element</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Setup

var element = $('span');

Test runner

Ready to run.

Testing in
TestOps/sec
hasClass
if( element.hasClass('class1') || element.hasClass('class2') ) {
  console.log("hasClass");
}
ready
is
if( element.is('.class1, .class2') ) {
  console.log("is");
}
ready
match
if( element.attr('class').match(/\bclass1\b|\bclass2\b/) ) {
  console.log("match");
}
ready
hasClass 3
if( element.hasClass('class1') || element.hasClass('class2') || element.hasClass( 'class3' ) ) {
  console.log("hasClass");
}
ready
hasClass 4
if( element.hasClass('class1') || element.hasClass('class2') || element.hasClass( 'class3' ) || element.hasClass( 'class4' ) ) {
  console.log("hasClass");
}
ready
is 3
if( element.is('.class1, .class2, .class3') ) {
  console.log("is");
}
ready
is 4
if( element.is('.class1, .class2, .class3, .class4') ) {
  console.log("is");
}
ready
match 3
if( element.attr('class').match(/\bclass1\b|\bclass2\b|\bclass3\b/) ) {
  console.log("match");
}
ready
match 4
if( element.attr('class').match(/\bclass1\b|\bclass2\b|\bclass3\b|\bclass4\b/) ) {
  console.log("match");
}
ready

Revisions

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