diff --git a/src/core.js b/src/core.js index 44e622717..e957e4ee1 100644 --- a/src/core.js +++ b/src/core.js @@ -55,7 +55,7 @@ var // A simple way to check for HTML strings // Prioritize #id over to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, // Match a standalone tag rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, diff --git a/test/unit/core.js b/test/unit/core.js index 0969c933e..20e1178d2 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -33,7 +33,7 @@ test("jQuery()", function() { div = jQuery("

"), exec = false, lng = "", - expected = 20, + expected = 22, attrObj = { "text": "test", "class": "test2", @@ -108,6 +108,12 @@ test("jQuery()", function() { equal( jQuery(document.body).get(0), jQuery("body").get(0), "Test passing an html node to the factory" ); + elem = jQuery(" hello")[0]; + equal( elem.nodeName.toLowerCase(), "em", "leading space" ); + + elem = jQuery("\n\nworld")[0]; + equal( elem.nodeName.toLowerCase(), "em", "leading newlines" ); + elem = jQuery("
", attrObj ); if ( jQuery.fn.width ) { diff --git a/test/unit/selector.js b/test/unit/selector.js index 440e7167b..7939ea350 100644 --- a/test/unit/selector.js +++ b/test/unit/selector.js @@ -73,18 +73,6 @@ test("disconnected nodes - jQuery only", function() { equal( $opt.is(":selected"), true, "selected option" ); }); -test("jQuery only - broken", 1, function() { - raises(function() { - // Setting context to null here somehow avoids QUnit's window.error handling - // making the e & e.message correct - // For whatever reason, without this, - // Sizzle.error will be called but no error will be seen in oldIE - jQuery.call( null, "
" ); - }, function( e ) { - return (/syntax.err/i).test( e.message ); - }, "leading space invalid: $('
')" ); -}); - testIframe("selector/html5_selector", "attributes - jQuery.attr", function( jQuery, window, document ) { expect( 35 );