Fix for #1162
[jquery.git] / src / jquery / jquery.js
index 76ef152..d9292ed 100644 (file)
@@ -166,12 +166,8 @@ jQuery.fn = jQuery.prototype = {
                                a = jQuery.clean( [ m[1] ] );
 
                        // HANDLE: $(expr)
-                       else {
-                               var r = new jQuery( c ).find( a );
-                               r.selector = a;
-                               r.context = c;
-                               return r;
-                       }
+                       else
+                               return new jQuery( c ).find( a );
                }
 
                return this.setArray(
@@ -180,7 +176,7 @@ jQuery.fn = jQuery.prototype = {
 
                        // HANDLE: $(arraylike)
                        // Watch for when an array-like object is passed as the selector
-                       (a.jquery || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) ||
+                       (a.jquery || a.length && a != window && (!a.nodeType || (jQuery.browser.msie && a.elements)) && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) ||
 
                        // HANDLE: $(*)
                        [ a ] );
@@ -1353,7 +1349,7 @@ jQuery.extend({
 
                // internal only, use removeClass("class")
                remove: function( elem, c ){
-                       elem.className = c ?
+                       elem.className = c != undefined ?
                                jQuery.grep( elem.className.split(/\s+/), function(cur){
                                        return !jQuery.className.has( c, cur ); 
                                }).join(" ") : "";
@@ -1527,7 +1523,7 @@ jQuery.extend({
                        if ( 0 === arg.length && !jQuery(arg).is("form, select") )
                                return;
 
-                       if ( arg[0] == undefined || jQuery(arg).is("form, select") )
+                       if ( arg[0] == undefined || jQuery.nodeName(arg, "form") || arg.options )
                                r.push( arg );
                        else
                                r = jQuery.merge( r, arg );
@@ -1803,7 +1799,7 @@ new function() {
 
        // Figure out what browser is being used
        jQuery.browser = {
-               version: b.match(/.+[xiae][\/ ]([\d.]+)/)[1],
+               version: b.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1],
                safari: /webkit/.test(b),
                opera: /opera/.test(b),
                msie: /msie/.test(b) && !/opera/.test(b),