X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=6e1ed9e956d6ba2a76f5ceae2d002426269946e4;hb=01e8f33e44b8ee4aa61b48d60cfcae34ac12fcf1;hp=53d5f4a4b1601bd0c4e83a00051d659beb0aaf05;hpb=3e3b86c7a7437c7b0416a2ac8385cf9403fc9e28;p=jquery.git diff --git a/src/core.js b/src/core.js index 53d5f4a..6e1ed9e 100644 --- a/src/core.js +++ b/src/core.js @@ -29,6 +29,9 @@ window.$ = jQuery; // (both of which we optimize for) var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/; +// Is it a simple selector +var isSimple = /^.[^:#\[\.]*$/; + jQuery.fn = jQuery.prototype = { init: function( selector, context ) { // Make sure that a selection was provided @@ -342,15 +345,16 @@ jQuery.fn = jQuery.prototype = { }, not: function( selector ) { - return this.pushStack( - selector.constructor == String && - jQuery.multiFilter( selector, this, true ) || - - jQuery.grep(this, function(elem) { - return selector.constructor == Array || selector.jquery ? - jQuery.inArray( elem, selector ) < 0 : - elem != selector; - }) ); + if ( selector.constructor == String ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ) ); + else + selector = jQuery.multiFilter( selector, this ); + + return this.filter(function() { + return jQuery.inArray( this, selector ) < 0; + }); }, add: function( selector ) {