Table with tfoot inside plain table results in weird DOM #3439

Closed
ShyLionTjmn opened this Issue Dec 8, 2016 · 7 comments

Projects

None yet

5 participants

@ShyLionTjmn
ShyLionTjmn commented Dec 8, 2016 edited

Create simple table with THEAD,TFOOT and TBODY tags and insert it into plain table with just TR and TD.
You will get broken table.

Here is an example:
https://jsfiddle.net/5kbwkzq8/5/

@timmywil
Member

It seems like the same thing would happen without jQuery. We can't stop you from building invalid html. However, the test case is pretty large. Would it be possible to reduce this even further? There's a lot going there.

@timmywil timmywil added Needs info and removed Needs review labels Dec 19, 2016
@gibson042
Member

Ok, this one is kind of cool. A <tr> is being appended to a table that has no <tbody>, but contains an inner table that does have one. And when we try to find a <tbody> to contain the incoming row, we mistakenly use the one from the inner table. This should be a straightforward fix.

@gibson042 gibson042 added Bug and removed Needs info labels Dec 19, 2016
@timmywil
Member

Thanks for digging into that!

@ShyLionTjmn
ShyLionTjmn commented Dec 20, 2016 edited

Why is it invalid? TBODY is not required when TR comes right after TABLE.

@timmywil
Member

@ShyLionTjmn at first glance, it looked like an unclosed tag or something, but @gibson042 dug further and it is a jQuery bug.

@gibson042 gibson042 added a commit to gibson042/jquery that referenced this issue Dec 20, 2016
@gibson042 gibson042 Manipulation: Restrict the tbody search to child nodes
Fixes gh-3439
1f614ed
@ShyLionTjmn

Ok. Thanks.

@leonardjo

Seems indeed to be a duplicate of the issue I'm having. Commit 1f614ed fixes the issue I see. Thank you.

@gibson042 gibson042 closed this in #3463 Jan 9, 2017
@gibson042 gibson042 added a commit that referenced this issue Jan 9, 2017
@gibson042 gibson042 Manipulation: Restrict the tbody search to child nodes
For performance, use a querySelectorAll path instead of Javascript iteration.
http://codepen.io/anon/pen/vywJjx?editors=1010

Fixes gh-3439
Closes gh-3463
efdb8a4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment