Commits

markelog  committed 19def21

Fix #13232, fix jQuery.buildFragment for tables, close gh-1138.

  • Participants
  • Parent commits dbf4926

Comments (0)

Files changed (2)

File src/manipulation.js

 		// Support: IE 9
 		option: [ 1, "<select multiple='multiple'>", "</select>" ],
 
-		tr: [ 1, "<table>", "</table>" ],
-		td: [ 3, "<table><tr>", "</tr></table>" ],
+		thead: [ 1, "<table>", "</table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
 		_default: [ 0, "", "" ]
 	};
 
 // Support: IE 9
 wrapMap.optgroup = wrapMap.option;
 
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead = wrapMap.col = wrapMap.tr;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.col = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
 jQuery.fn.extend({

File test/unit/manipulation.js

 
 	equal( fragment.childNodes.length, 0, "div element was removed from documentFragment" );
 });
+
+test( "Make sure specific elements with content created correctly (#13232)", 20, function() {
+	var results = [],
+		args = [],
+		elems = {
+			thead: "<tr><td>thead</td></tr>",
+			tbody: "<tr><td>tbody</td></tr>",
+			tfoot: "<tr><td>tfoot</td></tr>",
+			colgroup: "<col span='5' />",
+			caption: "caption",
+			tr: "<td>tr</td>",
+			th: "th",
+			td: "<div>td</div>",
+			optgroup: "<option>optgroup</option>",
+			option: "option"
+		};
+
+	jQuery.each( elems, function( name, value ) {
+		var html = "<" + name + ">" + value + "</" + name + ">";
+		ok( jQuery.nodeName( jQuery.parseHTML( "<" + name + ">" + value + "</" + name + ">" )[ 0 ], name ), name + " is created correctly" );
+
+		results.push( name );
+		args.push( html );
+	});
+
+	jQuery.fn.append.apply( jQuery("<div/>"), args ).children().each(function( i ) {
+		ok( jQuery.nodeName( this, results[ i ] ) );
+	});
+});