From e76ba32cebc26108e15b2e0e03c5152624c1bad9 Mon Sep 17 00:00:00 2001 From: jeresig Date: Mon, 1 Feb 2010 21:33:58 -0500 Subject: [PATCH] Make sure the resulting className from removeClass is nicely trimmed. Fixes #5988. --- src/attributes.js | 2 +- test/unit/attributes.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/attributes.js b/src/attributes.js index 82a4de1..b22acba 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -74,7 +74,7 @@ jQuery.fn.extend({ for ( var c = 0, cl = classNames.length; c < cl; c++ ) { className = className.replace(" " + classNames[c] + " ", " "); } - elem.className = className.substring(1, className.length - 1); + elem.className = jQuery.trim( className ); } else { elem.className = ""; diff --git a/test/unit/attributes.js b/test/unit/attributes.js index fd5b203..70ae50d 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -478,7 +478,7 @@ test("addClass(Function) with incoming value", function() { }); var testRemoveClass = function(valueObj) { - expect(5); + expect(7); var $divs = jQuery('div'); @@ -508,6 +508,17 @@ var testRemoveClass = function(valueObj) { var j = jQuery("#nonnodes").contents(); j.removeClass( valueObj("asdf") ); ok( !j.hasClass("asdf"), "Check node,textnode,comment for removeClass" ); + + var div = document.createElement("div"); + div.className = " test foo "; + + jQuery(div).removeClass( valueObj("foo") ); + equals( div.className, "test", "Make sure remaining className is trimmed." ); + + div.className = " test "; + + jQuery(div).removeClass( valueObj("test") ); + equals( div.className, "", "Make sure there is nothing left after everything is removed." ); }; test("removeClass(String) - simple", function() { -- 1.7.10.4