$("#foo", xml) would always return an empty set, fixed (bug #877). Additionally, a bug in jQuery.isXMLDoc(xmlDoc) was discovered, if the element was, in fact, an XML document.

This commit is contained in:
John Resig 2007-07-25 00:56:50 +00:00
parent bdf05d890f
commit f8b00051c3
2 changed files with 3 additions and 2 deletions

View file

@ -1318,7 +1318,8 @@ jQuery.extend({
// check if an element is in a XML document
isXMLDoc: function(elem) {
return elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
return elem.documentElement && !elem.body ||
elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
},
nodeName: function( elem, name ) {

View file

@ -213,7 +213,7 @@ jQuery.extend({
var elem = ret[ret.length-1];
// Try to do a global search by ID, where we can
if ( m[1] == "#" && elem && elem.getElementById ) {
if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
// Optimization for HTML document case
var oid = elem.getElementById(m[2]);