Skip to content
Permalink
Browse files

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

  • Loading branch information...
markelog authored and dmethvin committed Jan 16, 2013
1 parent dbf4926 commit 19def21df41d6be6419e4d2480a656d9e1a0e6b7
Showing with 34 additions and 3 deletions.
  1. +5 −3 src/manipulation.js
  2. +29 −0 test/unit/manipulation.js
@@ -15,15 +15,17 @@ var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>
// 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({
@@ -2196,3 +2196,32 @@ test( "Make sure jQuery.fn.remove can work on elements in documentFragment", 1,

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 ] ) );
});
});

0 comments on commit 19def21

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.