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

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

Comments

Projects
None yet
5 participants

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/

Owner

timmywil commented Dec 19, 2016

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

Member

gibson042 commented Dec 19, 2016

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

Owner

timmywil commented Dec 19, 2016

Thanks for digging into that!

ShyLionTjmn commented Dec 20, 2016 edited

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

Owner

timmywil commented Dec 20, 2016

@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

Ok. Thanks.

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

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