From 5d522f5c740f1f919a630a5f6ec3d40fad840ff7 Mon Sep 17 00:00:00 2001 From: Leonardo Braga Date: Tue, 13 Jan 2015 07:50:23 +0300 Subject: [PATCH] Manipulation: add support to tag-hyphenated elements Ref #1987 Ref 85ffc6d973865a031ded170934e0acfc2e97cb11 --- 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 c17aad831..aaa3827c6 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -34,8 +34,8 @@ var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|" + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), rleadingWhitespace = /^\s+/, - 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 302d1948f..2f63f047c 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -527,6 +527,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