Skip to content

Commit

Permalink
Make sure null/NaN values aren't set in .css(). Fixes #7116.
Browse files Browse the repository at this point in the history
  • Loading branch information
jeresig committed Oct 9, 2010
1 parent 2ca3659 commit 2ae872c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
7 changes: 6 additions & 1 deletion src/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jQuery.extend({
style: function( elem, name, value, extra ) {
// Don't set styles on text and comment nodes
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
return undefined;
return;
}

// Make sure that we're working with the right name
Expand All @@ -81,6 +81,11 @@ jQuery.extend({

// Check if we're setting a value
if ( value !== undefined ) {
// Make sure that NaN and null values aren't set. See: #7116
if ( typeof value === "number" && isNaN( value ) || value == null ) {
return;
}

// If a number was passed in, add 'px' to the (except for certain CSS properties)
if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
value += "px";
Expand Down
22 changes: 21 additions & 1 deletion test/unit/css.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module("css");

test("css(String|Hash)", function() {
expect(29);
expect(33);

equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');

Expand Down Expand Up @@ -61,6 +61,26 @@ test("css(String|Hash)", function() {
equals( prctval, checkval, "Verify fontSize % set." );

equals( typeof child.css("width"), "string", "Make sure that a string width is returned from css('width')." );

var old = child[0].style.height;

// Test NaN
child.css("height", parseFloat("zoo"));
equals( child[0].style.height, old, "Make sure height isn't changed on NaN." );

// Test null
child.css("height", null);
equals( child[0].style.height, old, "Make sure height isn't changed on null." );

old = child[0].style.fontSize;

// Test NaN
child.css("font-size", parseFloat("zoo"));
equals( child[0].style.fontSize, old, "Make sure font-size isn't changed on NaN." );

// Test null
child.css("font-size", null);
equals( child[0].style.fontSize, old, "Make sure font-size isn't changed on null." );
});

test("css(String, Object)", function() {
Expand Down

0 comments on commit 2ae872c

Please sign in to comment.