X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fcore.js;h=1ec8de057ffbf38fb93dd46c98e83541a8e2cc13;hb=ce4ab8a60e17ceafc3e67ddf4cc1b0526841a459;hp=6e1ed9e956d6ba2a76f5ceae2d002426269946e4;hpb=7120b56caa235ae9315aab0634d9ff7e21c300fd;p=jquery.git diff --git a/src/core.js b/src/core.js index 6e1ed9e..1ec8de0 100644 --- a/src/core.js +++ b/src/core.js @@ -353,7 +353,10 @@ jQuery.fn = jQuery.prototype = { selector = jQuery.multiFilter( selector, this ); return this.filter(function() { - return jQuery.inArray( this, selector ) < 0; + // check to see if the selector is array-like otherwise assume it is just a DOM element + return ( selector.length && selector[selector.length - 1] !== undefined ) + ? jQuery.inArray( this, selector ) < 0 + : this != selector; }); }, @@ -418,31 +421,32 @@ jQuery.fn = jQuery.prototype = { } - } else - return this.each(function(){ - if ( this.nodeType != 1 ) - return; + } - if ( value.constructor == Array && /radio|checkbox/.test( this.type ) ) - this.checked = (jQuery.inArray(this.value, value) >= 0 || - jQuery.inArray(this.name, value) >= 0); + return this.each(function(){ + if ( this.nodeType != 1 ) + return; - else if ( jQuery.nodeName( this, "select" ) ) { - var values = value.constructor == Array ? - value : - [ value ]; + if ( value.constructor == Array && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); - jQuery( "option", this ).each(function(){ - this.selected = (jQuery.inArray( this.value, values ) >= 0 || - jQuery.inArray( this.text, values ) >= 0); - }); + else if ( jQuery.nodeName( this, "select" ) ) { + var values = value.constructor == Array ? + value : + [ value ]; - if ( !values.length ) - this.selectedIndex = -1; + jQuery( "option", this ).each(function(){ + this.selected = (jQuery.inArray( this.value, values ) >= 0 || + jQuery.inArray( this.text, values ) >= 0); + }); - } else - this.value = value; - }); + if ( !values.length ) + this.selectedIndex = -1; + + } else + this.value = value; + }); }, html: function( value ) { @@ -815,6 +819,12 @@ jQuery.extend({ "1" : ret; } + // Opera sometimes will give the wrong display answer, this fixes it, see #2037 + if ( jQuery.browser.opera && name == "display" ) { + var save = elem.style.display; + elem.style.display = "block"; + elem.style.display = save; + } // Make sure we're using the right name for getting the float value if ( name.match( /float/i ) ) @@ -971,9 +981,9 @@ jQuery.extend({ div.childNodes : []; - for ( var i = tbody.length - 1; i >= 0 ; --i ) - if ( jQuery.nodeName( tbody[ i ], "tbody" ) && !tbody[ i ].childNodes.length ) - tbody[ i ].parentNode.removeChild( tbody[ i ] ); + for ( var j = tbody.length - 1; j >= 0 ; --j ) + if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) + tbody[ j ].parentNode.removeChild( tbody[ j ] ); // IE completely kills leading whitespace when innerHTML is used if ( /^\s/.test( elem ) )