Added fix for #986 (ID selector within an element that doesn't exist).
authorJohn Resig <jeresig@gmail.com>
Sat, 24 Mar 2007 02:54:24 +0000 (02:54 +0000)
committerJohn Resig <jeresig@gmail.com>
Sat, 24 Mar 2007 02:54:24 +0000 (02:54 +0000)
src/selector/selector.js

index e1abbf4..d59a555 100644 (file)
@@ -219,15 +219,17 @@ jQuery.extend({
                                                m = re2.exec(t);
                                        }
 
+                                       var last = ret[ret.length-1];
+
                                        // Try to do a global search by ID, where we can
-                                       if ( m[1] == "#" && ret[ret.length-1].getElementById ) {
+                                       if ( m[1] == "#" && last && last.getElementById ) {
                                                // Optimization for HTML document case
-                                               var oid = ret[ret.length-1].getElementById(m[2]);
+                                               var oid = last.getElementById(m[2]);
                                                
                                                // Do a quick check for the existence of the actual ID attribute
                                                // to avoid selecting by the name attribute in IE
                                                if ( jQuery.browser.msie && oid && oid.id != m[2] )
-                                                       oid = jQuery('[@id="'+m[2]+'"]', ret[ret.length-1])[0];
+                                                       oid = jQuery('[@id="'+m[2]+'"]', last)[0];
 
                                                // Do a quick check for node name (where applicable) so
                                                // that div#foo searches will be really fast