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
// 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";
module("css");
test("css(String|Hash)", function() {
- expect(29);
+ expect(33);
equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');
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() {