From 85ffc6d973865a031ded170934e0acfc2e97cb11 Mon Sep 17 00:00:00 2001 From: Leonardo Braga Date: Sun, 4 Jan 2015 19:02:39 -0500 Subject: [PATCH] Manipulation: add support to tag-hyphenated elements Fixes #1987 Closes gh-1988 --- src/manipulation.js | 4 ++-- test/unit/manipulation.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/manipulation.js b/src/manipulation.js index e66998d53..2e309f5e7 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -16,8 +16,8 @@ define([ ], function( jQuery, concat, push, access, rcheckableType, support, dataPriv, dataUser ) { var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, + rtagName = /<([\w:-]+)/, rhtml = /<|&#?\w+;/, rnoInnerhtml = /<(?:script|style|link)/i, // checked="checked" or checked diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index 12f5d14df..a6936b95b 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -486,6 +486,23 @@ test( "html(String) with HTML5 (Bug #6485)", function() { equal( jQuery("#qunit-fixture").children().children().children().length, 1, "Make sure nested HTML5 elements can hold children." ); }); +test( "html(String) tag-hyphenated elements (Bug #1987)", function() { + + expect( 27 ); + + jQuery.each( "thead tbody tfoot colgroup caption tr th td".split(" "), function( i, name ) { + var j = jQuery("<" + name + "-d><" + name + "-d>"); + ok( j[0], "Create a tag-hyphenated element" ); + ok( jQuery.nodeName(j[0], name.toUpperCase() + "-D"), "Hyphenated node name" ); + ok( jQuery.nodeName(j[1], name.toUpperCase() + "-D"), "Hyphenated node name" ); + }); + + var j = jQuery("text"); + ok( jQuery.nodeName(j[0], "TR-MULTIPLE-HYPHENS"), "Tags with multiple hypens" ); + ok( jQuery.nodeName(j.children()[0], "TD-WITH-HYPHEN"), "Tags with multiple hypens" ); + equal( j.children().text(), "text", "Tags with multple hypens behave normally" ); +}); + test( "IE8 serialization bug", function() { expect( 2 ); -- 2.39.5