I don't know if this is the right forum to post this in, but I have a question about the addClass code in jquery. I just looked through the code and noticed it doesn't use a regex to check for classes so I'm assuming that the string checks it does is faster. But I don't understand why it uses indexOf... isn't that slower than just doing a comparison between the currently looped class and the new class?
This is the snippet of code I'm referring to (line 1244):
- if ( !elem.className ) {
- elem.className = value;
- } else {
- var className = " " + elem.className + " ", setClass = elem.className;
- for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
- if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
- setClass += " " + classNames[c];
- }
- }
- elem.className = jQuery.trim( setClass );
- }
Couldn't it just be this instead:
- if ( !elem.className ) {
- elem.className = value;
- } else {
- var setClass = value;
- for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
- if ( classNames[c] != value ) ) {
- setClass += " " + classNames[c];
- }
- }
- elem.className = jQuery.trim( setClass );
- }