Fixed #1908 by testing to make sure it isn't null before checking the nodeType.
[jquery.git] / src / core.js
index 0ebc61d..4c12150 100644 (file)
@@ -549,11 +549,11 @@ jQuery.extend = jQuery.fn.extend = function() {
                                        continue;
 
                                // Recurse if we're merging object values
-                               if ( deep && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
+                               if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType )
                                        target[ name ] = jQuery.extend( target[ name ], options[ name ] );
 
                                // Don't bring in undefined values
-                               else if ( options[ name ] != undefined )
+                               else if ( options[ name ] !== undefined )
                                        target[ name ] = options[ name ];
 
                        }
@@ -1042,7 +1042,8 @@ jQuery.extend({
                                if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
                                        throw "type property can't be changed";
 
-                               elem.setAttribute( name, value );
+                               // convert the value to a string (all browsers do this but IE) see #1070
+                               elem.setAttribute( name, "" + value );
                        }
 
                        if ( jQuery.browser.msie && /href|src/.test( name ) && !jQuery.isXMLDoc( elem ) )