Czy istnieje sposób określenia lub obliczenia, czy i jak można normalizować tabelę HTML za pomocą wierszy? Lub jeśli istnieje biblioteka JavaScript, która może to zrobić."Normalizuj" tabelę HTML z przedziałem wierszy
Np ta tabela:
+-----------+---------+
| Apple | Red |
| Apple | Green |
| Apple | Yellow |
| Sun | Yellow |
| Sun | Hot |
| Charizard | Hot |
| Charizard | Pokémon |
+-----------+---------+
Czy zamieni się w ten sposób:
+-----------+---------+
| Apple | Red |
| | Green |
| |---------|
|-----------| Yellow |
| Sun |-------- |
|-----------| Hot |
| |---------|
| Charizard | Pokémon |
+-----------+---------+
Spójrz na to skrzypce, aby zobaczyć, co mam na myśli: http://jsfiddle.net/scorch/LZKkQ/
Niektóre z tych kombinacji są łatwe ręcznie, ale niektóre mogą być dość skomplikowane. Chciałbym jak najbardziej zminimalizować tabelę i upewnić się, że nie ma innej kombinacji, która mogłaby zminimalizować to. Tj., Najlepiej tylko unikalne wartości w tabeli.
EDYCJA: Nieważne dodatkowe kolumny w skrzypcach. Wygląda na to, że firefox ma pewne problemy z rowspanem w kolumnie po prawej stronie, więc musiałem dodać kolejną, aby uzyskać pożądany efekt.
EDIT 2:
W DataTables plugin fnMultiRowspan
i fnFakeRowspan
wymienione poniżej naprawdę nie uzyskania pożądanych wyników. Obie wtyczki wymagają wcześniejszego posortowania stołu we właściwy sposób; fnFakeRowspan
działa tylko na jednej kolumnie i fnMultiRowspan
daje wynik poniżej (gorącej i żółty są duplikowane w drugiej kolumnie):
+-----------+---------+
| | Red |
| Apple | Green |
| | Yellow |
|-----------+---------|
| Charizard | Hot |
| | Pokémon |
|-----------+---------|
| Sun | Yellow |
| | Hot |
+-----------+---------+
próbowałeś pisanie go samodzielnie? –
Tak, istnieje biblioteka jquery [Datatable] (http://datatables.net), która posiadała tę funkcję: [Wizualnie grupuje dwie lub więcej komórek w rzędzie z tą samą zawartością] (http://datatables.net/plug-ins/api # fnFakeRowspan) –
Próbowałem znaleźć matematyczny sposób, aby to zrobić, ale nie mogę znaleźć sposobu na zrobienie z tego równania. – Oscar