Fixed #2070 by adding a test for !nodeType to isArrayLike so DOM elements like SELECT...
[jquery.git] / src / core.js
index 7ac4ad7..1e4f924 100644 (file)
@@ -352,8 +352,9 @@ jQuery.fn = jQuery.prototype = {
                        else
                                selector = jQuery.multiFilter( selector, this );
 
+               var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
                return this.filter(function() {
-                       return jQuery.inArray( this, selector ) < 0;
+                       return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
                });
        },
 
@@ -816,6 +817,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 ) )