diff options
author | Thomas Tortorini <thomastortorini@gmail.com> | 2015-10-11 10:22:06 +0200 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2015-10-25 15:07:47 -0400 |
commit | f5328b6a447f23fd8fb9465db36b6eb46e9d8ba6 (patch) | |
tree | 28a5c8f831ccbafa52a0baa73262824b3335a7b7 | |
parent | c003cd6bc8336927dad70889ee24e176f90b25a9 (diff) | |
download | jquery-f5328b6a447f23fd8fb9465db36b6eb46e9d8ba6.tar.gz jquery-f5328b6a447f23fd8fb9465db36b6eb46e9d8ba6.zip |
Attributes: removeClass() -> attr("class", "")
- Classes simpliciation
Close gh-2465
(cherry picked from commit 5db1e053098af747330044d5740e5379f2834402)
Conflicts:
src/attributes/classes.js
-rw-r--r-- | src/attributes/classes.js | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/src/attributes/classes.js b/src/attributes/classes.js index 15a37bc99..72aed146d 100644 --- a/src/attributes/classes.js +++ b/src/attributes/classes.js @@ -13,9 +13,7 @@ function getClass( elem ) { jQuery.fn.extend( { addClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; + i = 0; if ( jQuery.isFunction( value ) ) { return this.each( function( j ) { @@ -23,13 +21,10 @@ jQuery.fn.extend( { } ); } - if ( proceed ) { + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; + while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); cur = elem.nodeType === 1 && ( " " + curValue + " " ).replace( rclass, " " ); @@ -56,20 +51,22 @@ jQuery.fn.extend( { removeClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; + i = 0; if ( jQuery.isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); } ); } - if ( proceed ) { - classes = ( value || "" ).match( rnotwhite ) || []; - for ( ; i < len; i++ ) { - elem = this[ i ]; + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); // This expression is here for better compressibility (see addClass) @@ -86,8 +83,8 @@ jQuery.fn.extend( { } } - // only assign if different to avoid unneeded rendering. - finalValue = value ? jQuery.trim( cur ) : ""; + // Only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); if ( curValue !== finalValue ) { elem.setAttribute( "class", finalValue ); } @@ -125,12 +122,13 @@ jQuery.fn.extend( { }, hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[ i ].nodeType === 1 && - ( " " + getClass( this[ i ] ) + " " ).replace( rclass, " " ) + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + getClass( elem ) + " " ).replace( rclass, " " ) .indexOf( className ) > -1 ) { return true; |