$("#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:
parent
bdf05d890f
commit
f8b00051c3
3
src/jquery/jquery.js
vendored
3
src/jquery/jquery.js
vendored
|
@ -1318,7 +1318,8 @@ jQuery.extend({
|
||||||
|
|
||||||
// check if an element is in a XML document
|
// check if an element is in a XML document
|
||||||
isXMLDoc: function(elem) {
|
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 ) {
|
nodeName: function( elem, name ) {
|
||||||
|
|
|
@ -213,7 +213,7 @@ jQuery.extend({
|
||||||
var elem = ret[ret.length-1];
|
var elem = 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] == "#" && elem && elem.getElementById ) {
|
if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
|
||||||
// Optimization for HTML document case
|
// Optimization for HTML document case
|
||||||
var oid = elem.getElementById(m[2]);
|
var oid = elem.getElementById(m[2]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue