Skip to content

Commit f5328b6

Browse files
mr21gibson042
authored andcommitted
Attributes: removeClass() -> attr("class", "")
- Classes simpliciation Close gh-2465 (cherry picked from commit 5db1e05) Conflicts: src/attributes/classes.js
1 parent c003cd6 commit f5328b6

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

src/attributes/classes.js

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,18 @@ function getClass( elem ) {
1313
jQuery.fn.extend( {
1414
addClass: function( value ) {
1515
var classes, elem, cur, curValue, clazz, j, finalValue,
16-
i = 0,
17-
len = this.length,
18-
proceed = typeof value === "string" && value;
16+
i = 0;
1917

2018
if ( jQuery.isFunction( value ) ) {
2119
return this.each( function( j ) {
2220
jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
2321
} );
2422
}
2523

26-
if ( proceed ) {
24+
if ( typeof value === "string" && value ) {
25+
classes = value.match( rnotwhite ) || [];
2726

28-
// The disjunction here is for better compressibility (see removeClass)
29-
classes = ( value || "" ).match( rnotwhite ) || [];
30-
31-
for ( ; i < len; i++ ) {
32-
elem = this[ i ];
27+
while ( ( elem = this[ i++ ] ) ) {
3328
curValue = getClass( elem );
3429
cur = elem.nodeType === 1 &&
3530
( " " + curValue + " " ).replace( rclass, " " );
@@ -56,20 +51,22 @@ jQuery.fn.extend( {
5651

5752
removeClass: function( value ) {
5853
var classes, elem, cur, curValue, clazz, j, finalValue,
59-
i = 0,
60-
len = this.length,
61-
proceed = arguments.length === 0 || typeof value === "string" && value;
54+
i = 0;
6255

6356
if ( jQuery.isFunction( value ) ) {
6457
return this.each( function( j ) {
6558
jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
6659
} );
6760
}
68-
if ( proceed ) {
69-
classes = ( value || "" ).match( rnotwhite ) || [];
7061

71-
for ( ; i < len; i++ ) {
72-
elem = this[ i ];
62+
if ( !arguments.length ) {
63+
return this.attr( "class", "" );
64+
}
65+
66+
if ( typeof value === "string" && value ) {
67+
classes = value.match( rnotwhite ) || [];
68+
69+
while ( ( elem = this[ i++ ] ) ) {
7370
curValue = getClass( elem );
7471

7572
// This expression is here for better compressibility (see addClass)
@@ -86,8 +83,8 @@ jQuery.fn.extend( {
8683
}
8784
}
8885

89-
// only assign if different to avoid unneeded rendering.
90-
finalValue = value ? jQuery.trim( cur ) : "";
86+
// Only assign if different to avoid unneeded rendering.
87+
finalValue = jQuery.trim( cur );
9188
if ( curValue !== finalValue ) {
9289
elem.setAttribute( "class", finalValue );
9390
}
@@ -125,12 +122,13 @@ jQuery.fn.extend( {
125122
},
126123

127124
hasClass: function( selector ) {
128-
var className = " " + selector + " ",
129-
i = 0,
130-
l = this.length;
131-
for ( ; i < l; i++ ) {
132-
if ( this[ i ].nodeType === 1 &&
133-
( " " + getClass( this[ i ] ) + " " ).replace( rclass, " " )
125+
var className, elem,
126+
i = 0;
127+
128+
className = " " + selector + " ";
129+
while ( ( elem = this[ i++ ] ) ) {
130+
if ( elem.nodeType === 1 &&
131+
( " " + getClass( elem ) + " " ).replace( rclass, " " )
134132
.indexOf( className ) > -1
135133
) {
136134
return true;

0 commit comments

Comments
 (0)