A follow-up for bug #3945. ID selectors don't work in querySelectorAll on XML documents, so we just fall back to the normal engine.

This commit is contained in:
John Resig 2009-01-21 23:31:29 +00:00
parent 7d9d210540
commit d45f193948
2 changed files with 5 additions and 3 deletions

View file

@ -723,7 +723,9 @@ if ( document.querySelectorAll ) (function(){
Sizzle = function(query, context, extra, seed){ Sizzle = function(query, context, extra, seed){
context = context || document; context = context || document;
if ( !seed && context.nodeType === 9 ) { // Only use querySelectorAll on non-XML documents
// (ID selectors don't work in non-HTML documents)
if ( !seed && context.nodeType === 9 && !isXML(context) ) {
try { try {
return makeArray( context.querySelectorAll(query), extra ); return makeArray( context.querySelectorAll(query), extra );
} catch(e){} } catch(e){}

View file

@ -28,8 +28,8 @@ if ( location.protocol != "file:" ) {
equals( jQuery("foo_bar", xml).length, 1, "Element Selector with underscore" ); equals( jQuery("foo_bar", xml).length, 1, "Element Selector with underscore" );
equals( jQuery("property[name=prop2]", xml).length, 1, "Attribute selector with name" ); equals( jQuery("property[name=prop2]", xml).length, 1, "Attribute selector with name" );
equals( jQuery("[name=prop2]", xml).length, 1, "Attribute selector with name" ); equals( jQuery("[name=prop2]", xml).length, 1, "Attribute selector with name" );
equals( jQuery("#seite1", xml).length, 1, "Attribute selector with name" ); equals( jQuery("#seite1", xml).length, 1, "Attribute selector with ID" );
equals( jQuery("component#seite1", xml).length, 1, "Attribute selector with name" ); equals( jQuery("component#seite1", xml).length, 1, "Attribute selector with ID" );
start(); start();
}); });
}); });