Added an improvement to quickExpr and some more tests for jQuery('html'). Fixes #4979.
This commit is contained in:
parent
8c18dcdeb0
commit
18a6fbbb6a
|
@ -20,7 +20,7 @@ var jQuery = function( selector, context ) {
|
||||||
|
|
||||||
// A simple way to check for HTML strings or ID strings
|
// A simple way to check for HTML strings or ID strings
|
||||||
// (both of which we optimize for)
|
// (both of which we optimize for)
|
||||||
quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
|
quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,
|
||||||
|
|
||||||
// Is it a simple selector
|
// Is it a simple selector
|
||||||
isSimple = /^.[^:#\[\.,]*$/,
|
isSimple = /^.[^:#\[\.,]*$/,
|
||||||
|
@ -70,12 +70,12 @@ jQuery.fn = jQuery.prototype = {
|
||||||
|
|
||||||
// HANDLE: $("#id")
|
// HANDLE: $("#id")
|
||||||
} else {
|
} else {
|
||||||
elem = document.getElementById( match[3] );
|
elem = document.getElementById( match[2] );
|
||||||
|
|
||||||
if ( elem ) {
|
if ( elem ) {
|
||||||
// Handle the case where IE and Opera return items
|
// Handle the case where IE and Opera return items
|
||||||
// by name instead of ID
|
// 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
|
// Otherwise, we inject the element directly into the jQuery object
|
||||||
this.length++;
|
this.length++;
|
||||||
|
|
|
@ -303,7 +303,7 @@ test("isXMLDoc - XML", function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
test("jQuery('html')", function() {
|
test("jQuery('html')", function() {
|
||||||
expect(8);
|
expect(13);
|
||||||
|
|
||||||
reset();
|
reset();
|
||||||
jQuery.foo = false;
|
jQuery.foo = false;
|
||||||
|
@ -313,6 +313,14 @@ test("jQuery('html')", function() {
|
||||||
jQuery("body").append("<script>jQuery.foo='test';</script>");
|
jQuery("body").append("<script>jQuery.foo='test';</script>");
|
||||||
ok( jQuery.foo, "Executing a scripts contents in the right context" );
|
ok( jQuery.foo, "Executing a scripts contents in the right context" );
|
||||||
|
|
||||||
|
// Test multi-line HTML
|
||||||
|
var div = jQuery("<div>\r\nsome text\n<p>some p</p>\nmore text\r\n</div>")[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();
|
reset();
|
||||||
ok( jQuery("<link rel='stylesheet'/>")[0], "Creating a link" );
|
ok( jQuery("<link rel='stylesheet'/>")[0], "Creating a link" );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue