]> source.dussan.org Git - jquery.git/commitdiff
Manipulation: Don't provide the parser with sloppy table markup
authorAnthony Ryan <anthonyryan1@gmail.com>
Sat, 25 Jul 2015 06:15:02 +0000 (02:15 -0400)
committerMichał Gołębiowski <m.goleb@gmail.com>
Mon, 14 Sep 2015 20:04:56 +0000 (22:04 +0200)
While we can reply on parsers that were designed to cope with
malformed syntax to understand what we mean, we shouldn't
intentionally provide bad markup, not all parsers will accept
it.

"Be conservative in what you do, be liberal in what you accept
from others."

(cherry-picked from 99e8ff1baa7ae341e94bb89c3e84570c7c3ad9ea)

Reverts 0ea342a6a6dce793c1b0f14f051c2573f40f4e44

Refs gh-2031
Refs gh-2002
Fixes gh-2493
Closes gh-2499

src/manipulation/wrapMap.js

index 505e091f8c037be6d7902790a4bb71aa12c256d5..e5e5acdab3ad9127aff1a02239b0a9d22b1b57dc 100644 (file)
@@ -9,21 +9,13 @@ var wrapMap = {
        // Support: IE8
        param: [ 1, "<object>", "</object>" ],
 
+       // XHTML parsers do not magically insert elements in the
+       // same way that tag soup parsers do. So we cannot shorten
+       // this by omitting <tbody> or other required elements.
        thead: [ 1, "<table>", "</table>" ],
-
-       // Some of the following wrappers are not fully defined, because
-       // their parent elements (except for "table" element) could be omitted
-       // since browser parsers are smart enough to auto-insert them
-
-       // Support: Android 2.3
-       // Android browser doesn't auto-insert colgroup
        col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
-
-       // Auto-insert "tbody" element
-       tr: [ 2, "<table>", "</table>" ],
-
-       // Auto-insert "tbody" and "tr" elements
-       td: [ 3, "<table>", "</table>" ],
+       tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+       td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
 
        // IE8 can't serialize link, script, style, or any html5 (NoScope) tags,
        // unless wrapped in a div with non-breaking characters in front of it.