From 18a6fbbb6ab0bdabbbd377d23385650e45c30e74 Mon Sep 17 00:00:00 2001 From: John Resig Date: Mon, 27 Jul 2009 20:47:32 +0000 Subject: [PATCH] Added an improvement to quickExpr and some more tests for jQuery('html'). Fixes #4979. --- src/core.js | 6 +++--- test/unit/core.js | 10 +++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/core.js b/src/core.js index 7e7a4e2..5f2cf20 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 c58f13f..b6dc206 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" ); -- 1.7.10.4