Skip to main content

Bug Tracker

Side navigation

Ticket #2184: 2184.diff


File 2184.diff, 1.8 KB (added by davidserduke, January 18, 2008 01:52AM UTC)

possible patch

Index: test/unit/core.js
===================================================================
--- test/unit/core.js	(revision 4476)
+++ test/unit/core.js	(working copy)
@@ -955,11 +955,23 @@
 });
 
 test("clone()", function() {
-	expect(4);
+	expect(20);
 	ok( 'This is a normal link: Yahoo' == $('#en').text(), 'Assert text for #en' );
 	var clone = $('#yahoo').clone();
 	ok( 'Try them out:Yahoo' == $('#first').append(clone).text(), 'Check for clone' );
 	ok( 'This is a normal link: Yahoo' == $('#en').text(), 'Reassert text for #en' );
+
+	var cloneTags = [ 
+		"<table/>", "<tr/>", "<td/>", "<div/>", 
+		"<button/>", "<ul/>", "<ol/>", "<li/>",
+		"<input type='checkbox' />", "<select/>", "<option/>", "<textarea/>",
+		"<tbody/>", "<thead/>", "<tfoot/>", "<iframe/>"
+	];
+	for (var i = 0; i < cloneTags.length; i++) {
+		var j = $(cloneTags[i]);
+		equals( j[0].tagName, j.clone()[0].tagName, 'Clone a &lt;' + cloneTags[i].substring(1));
+	}
+
 	// using contents will get comments regular, text, and comment nodes
 	var cl = $("#nonnodes").contents().clone();
 	ok( cl.length >= 2, "Check node,textnode,comment clone works (some browsers delete comments on clone)" );
Index: src/core.js
===================================================================
--- src/core.js	(revision 4476)
+++ src/core.js	(working copy)
@@ -303,11 +303,9 @@
 				// as properties will not be copied (such as the
 				// the name attribute on an input).
 				var clone = this.cloneNode(true),
-					container = document.createElement("div"),
-					container2 = document.createElement("div");
+					container = document.createElement("div");
 				container.appendChild(clone);
-				container2.innerHTML = container.innerHTML;
-				return container2.firstChild;
+				return jQuery.clean([container.innerHTML])[0];
 			} else
 				return this.cloneNode(true);
 		});

Download in other formats:

Original Format