diff --git a/src/core.js b/src/core.js index 7e7a4e2e..5f2cf20b 100644 --- a/src/core.js +++ b/src/core.js @@ -20,7 +20,7 @@ var jQuery = function( selector, context ) { // A simple way to check for HTML strings or ID strings // (both of which we optimize for) - quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, // Is it a simple selector isSimple = /^.[^:#\[\.,]*$/, @@ -70,12 +70,12 @@ jQuery.fn = jQuery.prototype = { // HANDLE: $("#id") } else { - elem = document.getElementById( match[3] ); + elem = document.getElementById( match[2] ); if ( elem ) { // Handle the case where IE and Opera return items // by name instead of ID - if ( elem.id !== match[3] ) return rootjQuery.find( selector ); + if ( elem.id !== match[2] ) return rootjQuery.find( selector ); // Otherwise, we inject the element directly into the jQuery object this.length++; diff --git a/test/unit/core.js b/test/unit/core.js index c58f13f3..b6dc2064 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -303,7 +303,7 @@ test("isXMLDoc - XML", function() { } test("jQuery('html')", function() { - expect(8); + expect(13); reset(); jQuery.foo = false; @@ -313,6 +313,14 @@ test("jQuery('html')", function() { jQuery("body").append(""); ok( jQuery.foo, "Executing a scripts contents in the right context" ); + // Test multi-line HTML + var div = jQuery("
\r\nsome text\n

some p

\nmore text\r\n
")[0]; + equals( div.nodeName.toUpperCase(), "DIV", "Make sure we're getting a div." ); + equals( div.firstChild.nodeType, 3, "Text node." ); + equals( div.lastChild.nodeType, 3, "Text node." ); + equals( div.childNodes[1].nodeType, 1, "Paragraph." ); + equals( div.childNodes[1].firstChild.nodeType, 3, "Paragraph text." ); + reset(); ok( jQuery("")[0], "Creating a link" );