有没有办法确定或计算 HTML 表格是否以及如何使用行跨度进行标准化?或者,如果有一个 JavaScript 库可以做到这一点。
例如,这张表:
+-----------+---------+
| Apple | Red |
| Apple | Green |
| Apple | Yellow |
| Sun | Yellow |
| Sun | Hot |
| Charizard | Hot |
| Charizard | Pokémon |
+-----------+---------+
会变成这样:
+-----------+---------+
| Apple | Red |
| | Green |
| |---------|
|-----------| Yellow |
| Sun |-------- |
|-----------| Hot |
| |---------|
| Charizard | Pokémon |
+-----------+---------+
看看这个小提琴,看看我的意思:http: //jsfiddle.net/scorch/LZKkQ/
其中一些组合很容易手动计算,但有些可能非常复杂。我想尽可能地最小化表格,并确保没有其他组合可以进一步最小化它。即,最好只有表中的唯一值。
编辑:不要介意小提琴中的额外列。似乎 Firefox 在最右边一列的行跨度方面存在一些问题,所以我不得不添加另一个以达到预期的效果。
编辑 2:
下面提到的 DataTables 插件fnMultiRowspan
并没有真正得到预期的结果。fnFakeRowspan
两个插件都需要事先以正确的方式对表格进行排序才能工作;fnFakeRowspan
仅适用于一列并fnMultiRowspan
给出以下结果(热和黄色在第二列中重复):
+-----------+---------+
| | Red |
| Apple | Green |
| | Yellow |
|-----------+---------|
| Charizard | Hot |
| | Pokémon |
|-----------+---------|
| Sun | Yellow |
| | Hot |
+-----------+---------+