Landing pull request 492. 1.7 Remove multiple attributes (Symmetry with removeClass) Combines patches submitted by leeoniya, zertosh and my own tests. Fixes #5479.

More Details:
 - https://github.com/jquery/jquery/pull/492
 - http://bugs.jquery.com/ticket/5479
This commit is contained in:
Rick Waldron
2011-09-19 21:07:07 -04:00
committed by timmywil
parent f60213648c
commit ca4133cc3f
2 changed files with 39 additions and 9 deletions

View File

@@ -362,18 +362,26 @@ jQuery.extend({
}
},
removeAttr: function( elem, name ) {
var propName;
removeAttr: function( elem, value ) {
var propName, attrNames, name, l,
i = 0;
if ( elem.nodeType === 1 ) {
name = jQuery.attrFix[ name ] || name;
attrNames = (value || "").split( rspace );
l = attrNames.length;
// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" );
elem.removeAttribute( name );
for ( ; i < l; i++ ) {
name = attrNames[ i ];
name = jQuery.attrFix[ name ] || name;
// Set corresponding property to false for boolean attributes
if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
elem[ propName ] = false;
// See #9699 for explanation of this approach (setting first, then removal)
jQuery.attr( elem, name, "" );
elem.removeAttribute( name );
// Set corresponding property to false for boolean attributes
if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
elem[ propName ] = false;
}
}
}
},