Added fix for #986 (ID selector within an element that doesn't exist).

This commit is contained in:
John Resig 2007-03-24 02:54:24 +00:00
parent e2b52e1e40
commit 32b523b5c5

View File

@ -219,15 +219,17 @@ jQuery.extend({
m = re2.exec(t); m = re2.exec(t);
} }
var last = ret[ret.length-1];
// Try to do a global search by ID, where we can // 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 // 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 // Do a quick check for the existence of the actual ID attribute
// to avoid selecting by the name attribute in IE // to avoid selecting by the name attribute in IE
if ( jQuery.browser.msie && oid && oid.id != m[2] ) 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 // Do a quick check for node name (where applicable) so
// that div#foo searches will be really fast // that div#foo searches will be really fast