.remove("...") removed too much.
[jquery.git] / src / selector / selector.js
index 4633c30..e21102c 100644 (file)
@@ -59,7 +59,7 @@ jQuery.extend({
                        _resort: function(m){
                                return ["", m[1], m[3], m[2], m[5]];
                        },
-                       _prefix: "z=jQuery.attr(a,m[3]);"
+                       _prefix: "z=a[m[3]]||jQuery.attr(a,m[3]);"
                },
                "[": "jQuery.find(m[2],a).length"
        },
@@ -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"
@@ -101,7 +101,7 @@ jQuery.extend({
                        return [ t ];
 
                // Make sure that the context is a DOM Element
-               if ( context && context.nodeType == undefined )
+               if ( context && !context.nodeType )
                        context = null;
 
                // Set the correct context (if none is provided)
@@ -214,10 +214,6 @@ jQuery.extend({
                                                ret = r = oid && 
                                                  (!m[3] || oid.nodeName == m[3].toUpperCase()) ? [oid] : [];
 
-                                       // Use the DOM 0 shortcut for the body element
-                                       } else if ( m[1] == "" && m[2] == "body" ) {
-                                               ret = r = [ document.body ];
-
                                        } else {
                                                // Pre-compile a regular expression to handle class searches
                                                if ( m[1] == "." )
@@ -423,4 +419,4 @@ jQuery.extend({
 
                return r;
        }
-});
\ No newline at end of file
+});