From: jeresig Date: Thu, 7 Jan 2010 14:53:16 +0000 (-0500) Subject: Fixed some bugs relating to the setter arg change in val and html. Also optimized... X-Git-Tag: 1.4rc1~16^2~11 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=4681216c4bdf25b6b146b3f952917f46079c6ef7;p=jquery.git Fixed some bugs relating to the setter arg change in val and html. Also optimized the code in val a bit. --- diff --git a/src/attributes.js b/src/attributes.js index a5a6662c4..1dd70842c 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -195,28 +195,23 @@ jQuery.fn.extend({ return undefined; } - // Typecast once if the value is a number - if ( typeof value === "number" ) { - value += ""; - } - - var val = value; + var isFunction = jQuery.isFunction(value); return this.each(function(i) { - var self = jQuery(this); + var self = jQuery(this), val = value; - if ( jQuery.isFunction(value) ) { - val = value.call(this, i, self.val()); + if ( this.nodeType !== 1 ) { + return; + } - // Typecast each time if the value is a Function and the appended - // value is therefore different each time. - if ( typeof val === "number" ) { - val += ""; - } + if ( isFunction ) { + val = value.call(this, i, self.val()); } - if ( this.nodeType !== 1 ) { - return; + // Typecast each time if the value is a Function and the appended + // value is therefore different each time. + if ( typeof val === "number" ) { + val += ""; } if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { @@ -226,7 +221,7 @@ jQuery.fn.extend({ var values = jQuery.makeArray(val); jQuery( "option", this ).each(function() { - this.selected = jQuery.inArray( self.val(), values ) >= 0; + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; }); if ( !values.length ) { diff --git a/src/manipulation.js b/src/manipulation.js index 730dfca5e..081bb5481 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -173,7 +173,7 @@ jQuery.fn.extend({ html: function( value ) { if ( value === undefined ) { - return this[0] ? + return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(rinlinejQuery, "") : null;