]> source.dussan.org Git - jquery.git/commitdiff
Manipulation: add support to tag-hyphenated elements
authorLeonardo Braga <leonardo.braga@gmail.com>
Mon, 5 Jan 2015 00:02:39 +0000 (19:02 -0500)
committerOleg Gaidarenko <markelog@gmail.com>
Tue, 13 Jan 2015 04:42:59 +0000 (07:42 +0300)
Fixes #1987
Closes gh-1988

src/manipulation.js
test/unit/manipulation.js

index e66998d53e0789321f4a0da1a0dae33b920e085d..2e309f5e7cda74277f89e65c21fcd71a56e56d32 100644 (file)
@@ -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
index 12f5d14df7b13c8229398188b56f45dc1bd62838..a6936b95b48bfa1b554775d04a4f6345c580e3d2 100644 (file)
@@ -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><" + 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("<tr-multiple-hyphens><td-with-hyphen>text</td-with-hyphen></tr-multiple-hyphens>");
+       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 );