Skip to content
Permalink
Browse files

Fix #10773. Improve parameter handling in removeAttr.

  • Loading branch information
markelog authored and dmethvin committed Nov 13, 2011
1 parent fa96f4b commit a467aa0a779b8741581cc2ab1fcd914f5718f5c8
Showing with 38 additions and 25 deletions.
  1. +3 −3 src/attributes.js
  2. +35 −22 test/unit/attributes.js
@@ -355,12 +355,12 @@ jQuery.extend({
var propName, attrNames, name, l,
i = 0;

if ( elem.nodeType === 1 ) {
attrNames = ( value || "" ).split( rspace );
if ( value && typeof value === "string" && elem.nodeType === 1 ) {
attrNames = jQuery.trim( value ).toLowerCase().split( " " );
l = attrNames.length;

for ( ; i < l; i++ ) {
name = attrNames[ i ].toLowerCase();
name = attrNames[ i ];
propName = jQuery.propFix[ name ] || name;

// See #9699 for explanation of this approach (setting first, then removal)
@@ -481,6 +481,41 @@ test("removeAttr(String)", function() {
}
});

test("removeAttr, #", function() {

var div = jQuery("<div />");

ok( div.removeAttr( "" ), "empty string" );
ok( div.removeAttr(), "nothing" );
ok( div.removeAttr( false ), "false" );
ok( div.removeAttr( true ), "true" );
ok( div.removeAttr({ }), "object" );
ok( div.removeAttr( function(){} ), "function" );

});

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(String, Object)", function() {
expect(31);

@@ -548,28 +583,6 @@ test("prop(String, Object)", function() {
equal( $form.prop("enctype"), "multipart/form-data", "Set the enctype of a form (encoding in IE6/7 #6743)" );
});

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 a467aa0

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