removeClass

JavaScript performance comparison

Test case created by sofish

Info

remove classname form element

Preparation code

<div id="sofish" class="abc def ghi jkl    some  ume    html5  love">
hi classname
</div>
<script>
  var removeClassMootools = function(elem, className) {
   elem.className = elem.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');
   return elem;
  },
      removeClassTangram = function(element, className) {
    var oldClasses = element.className.split(/\s+/).sort(),
        newClasses = className.split(/\s+/).sort(),
        i = oldClasses.length,
        j = newClasses.length;
 
    for (; i && j;) {
     if (oldClasses[i - 1] == newClasses[j - 1]) {
      oldClasses.splice(--i, 1);
     } else if (oldClasses[i - 1] < newClasses[j - 1]) {
      j--;
     } else {
      i--;
     }
    }
    element.className = oldClasses.join(' ');
    return element;
      },
      removeClassNewMootools = function(elem, className) {
    className = className.split(/\s+/);
    var i, len = className.length,
        c;
    for (i = len; i >= 0; i--) {
     c = className[i];
     elem.className = elem.className.replace(new RegExp('(^|\\s)' + c + '(?:\\s|$)'), '$1');
    }
    return elem
      };
 
  var el = document.getElementById('sofish'),
      r;
</script>

Preparation code output

hi classname

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Mootools
r = removeClassMootools(el, 'ume');
pending…
Tangram
r = removeClassTangram(el, 'ume');
pending…
newMootools
r = removeClassNewMootools(el, 'ume')
pending…

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

Compare results of other browsers

0 comments

Add a comment