Skip to content
Permalink
Browse files

Landing pull request 492. 1.7 Remove multiple attributes (Symmetry wi…

…th removeClass) Combines patches submitted by leeoniya, zertosh and my own tests. Fixes #5479.

More Details:
 - #492
 - http://bugs.jquery.com/ticket/5479
  • Loading branch information...
rwaldron authored and timmywil committed Sep 20, 2011
1 parent f602136 commit ca4133cc3fb4202d08de0d9e9d05e2442be63653
Showing with 39 additions and 9 deletions.
  1. +17 −9 src/attributes.js
  2. +22 −0 test/unit/attributes.js
@@ -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;
}
}
}
},
@@ -532,6 +532,28 @@ test("prop(String, Object)", function() {
jQuery( document ).removeProp("nonexisting");
});

test("removeAttr(Multi String)", function() {
expect(8);

var div = jQuery("<div id='a' alt='b' title='c' rel='d'></div>"),
tests = {
id: "a",
alt: "b",
title: "c",
rel: "d"
};

jQuery.each( tests, function( key, val ) {
equal( div.attr(key), val, "Attribute `" + key + "` exists, and has a value of `" + val + "`" );
});

div.removeAttr( "id alt title rel" );

jQuery.each( tests, function( key, val ) {
equal( div.attr(key), undefined, "Attribute `" + key + "` was removed" );
});
});

test("prop('tabindex')", function() {
expect(8);

0 comments on commit ca4133c

Please sign in to comment.
You can’t perform that action at this time.