Fixed #1854 by using wizzud's suggestion. The only real difference is the code is only called when there is more than a single selector. So there should be no speed decrease in the current working cases. Only additional functionality for cases that used to fail.

This commit is contained in:
David Serduke 2007-12-13 22:24:59 +00:00
parent 3e3b86c7a7
commit da33a981c6
5 changed files with 29 additions and 14 deletions

View file

@ -320,7 +320,11 @@ jQuery.extend({
// :not() is a special case that can be optimized by
// keeping it out of the expression list
if ( m[1] == ":" && m[2] == "not" )
r = jQuery.filter(m[3], r, true).r;
// optimize if only one selector found (most common case)
if ( /^.[^:#\[\.]*$/.test(m[3]) )
r = jQuery.filter(m[3], r, true).r;
else
r = jQuery.removeFromArray(jQuery.multiFilter(m[3], r), r);
// We can get a big speed boost by filtering by class here
else if ( m[1] == "." )