Made sure that .removeClass(null) doesn't throw an exception. Fixes #3847.

This commit is contained in:
John Resig 2009-01-20 17:33:25 +00:00
parent a78557472c
commit cd28922b78
2 changed files with 7 additions and 3 deletions

View file

@ -708,7 +708,7 @@ jQuery.extend({
// internal only, use hasClass("class") // internal only, use hasClass("class")
has: function( elem, className ) { has: function( elem, className ) {
return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
} }
}, },

View file

@ -1557,7 +1557,7 @@ test("addClass(String)", function() {
}); });
test("removeClass(String) - simple", function() { test("removeClass(String) - simple", function() {
expect(4); expect(5);
var $divs = jQuery('div'); var $divs = jQuery('div');
@ -1566,13 +1566,17 @@ test("removeClass(String) - simple", function() {
ok( !$divs.is('.test'), "Remove Class" ); ok( !$divs.is('.test'), "Remove Class" );
reset(); reset();
$divs.addClass("test").addClass("foo").addClass("bar"); $divs.addClass("test").addClass("foo").addClass("bar");
$divs.removeClass("test").removeClass("bar").removeClass("foo"); $divs.removeClass("test").removeClass("bar").removeClass("foo");
ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" ); ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" );
reset(); reset();
// Make sure that a null value doesn't cause problems
$divs.eq(0).addClass("test").removeClass(null);
ok( $divs.eq(0).is('.test'), "Null value passed to removeClass" );
$divs.eq(0).addClass("test").removeClass(""); $divs.eq(0).addClass("test").removeClass("");
ok( $divs.eq(0).is('.test'), "Empty string passed to removeClass" ); ok( $divs.eq(0).is('.test'), "Empty string passed to removeClass" );