Skip to content
Permalink
Browse files

Added an improvement to quickExpr and some more tests for jQuery('htm…

…l'). Fixes #4979.
  • Loading branch information
jeresig committed Jul 27, 2009
1 parent 8c18dcd commit 18a6fbbb6ab0bdabbbd377d23385650e45c30e74
Showing with 12 additions and 4 deletions.
  1. +3 −3 src/core.js
  2. +9 −1 test/unit/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++;
@@ -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("<script>jQuery.foo='test';</script>");
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();
ok( jQuery("<link rel='stylesheet'/>")[0], "Creating a link" );

0 comments on commit 18a6fbb

Please sign in to comment.
You can’t perform that action at this time.