Fixed docs for .clone(Boolean).
[jquery.git] / src / selector / selector.js
index d9114c2..4a6d105 100644 (file)
@@ -70,10 +70,10 @@ jQuery.extend({
                "\\[ *(@)S *([!*$^=]*) *('?\"?)(.*?)\\4 *\\]",
 
                // Match: [div], [div p]
-               "(\\[)\\s*(.*?)\\s*\\]",
+               "(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]",
 
                // Match: :contains('foo')
-               "(:)S\\(\"?'?([^\\)]*?)\"?'?\\)",
+               "(:)S\\(\"?'?(.*?(\\(.*?\\))?[^(]*?)\"?'?\\)",
 
                // Match: :even, :last-chlid
                "([:.#]*)S"
@@ -89,6 +89,19 @@ jQuery.extend({
                }
        ],
 
+       multiFilter: function( expr, elems, not ) {
+               var old, cur = [];
+
+               while ( expr && expr != old ) {
+                       old = expr;
+                       var f = jQuery.filter( expr, elems, not );
+                       expr = f.t.replace(/^\s*,\s*/, "" );
+                       cur = not ? elems = f.r : jQuery.merge( cur, f.r );
+               }
+
+               return cur;
+       },
+
        /**
         * @name $.find
         * @type Array<Element>
@@ -175,8 +188,8 @@ jQuery.extend({
                        // matched a token
                        if ( t && !foundToken ) {
                                // Handle multiple expressions
-                               if ( !t.indexOf(",") || !t.indexOf("|") ) {
-                                       // Clean teh result set
+                               if ( !t.indexOf(",") ) {
+                                       // Clean the result set
                                        if ( ret[0] == context ) ret.shift();
 
                                        // Merge the result sets