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("")[0], "Creating a link" );
- reset();
+ ok( !jQuery("")[0].parentNode, "Create a script" );
+
+ ok( jQuery("").attr("type", "hidden"), "Create an input and set the type." );
var j = jQuery("hi there ");
ok( j.length >= 2, "Check node,textnode,comment creation (some browsers delete comments)" );