diff options
-rw-r--r-- | src/core.js | 14 | ||||
-rw-r--r-- | test/unit/core.js | 6 |
2 files changed, 12 insertions, 8 deletions
diff --git a/src/core.js b/src/core.js index 2688a4698..592c9a033 100644 --- a/src/core.js +++ b/src/core.js @@ -819,6 +819,14 @@ jQuery.extend({ if ( typeof context.createElement === "undefined" ) context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + var ret = [], scripts = [], div = context.createElement("div"); jQuery.each(elems, function(i, elem){ @@ -915,12 +923,6 @@ jQuery.extend({ }); - // Clean up - // Safari 3.1 throws an exception when a colgroup is created - try { - div.innerHTML = ""; - } catch(e){} - if ( fragment ) { for ( var i = 0; ret[i]; i++ ) { var node = ret[i]; diff --git a/test/unit/core.js b/test/unit/core.js index 9a1cecbe4..451bd71c7 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -254,7 +254,7 @@ test("isFunction", function() { var foo = false; test("jQuery('html')", function() { - expect(6); + expect(8); reset(); foo = false; @@ -267,7 +267,9 @@ test("jQuery('html')", function() { reset(); ok( jQuery("<link rel='stylesheet'/>")[0], "Creating a link" ); - reset(); + ok( !jQuery("<script/>")[0].parentNode, "Create a script" ); + + ok( jQuery("<input/>").attr("type", "hidden"), "Create an input and set the type." ); var j = jQuery("<span>hi</span> there <!-- mon ami -->"); ok( j.length >= 2, "Check node,textnode,comment creation (some browsers delete comments)" ); |