Merge gleich Tabellenzelle mit jQuery
Einfache html-Tabelle mit NxM-Werte.
Das Ziel besteht in der Zusammenführung von gleichen Zellen in Spalte mit jQuery.
Beachten Sie, dass in einer Zeile keine Duplikate vorhanden sind.
Bekam ich, wie zu verstecken die gleichen Zellen, aber gibt es eine Möglichkeit, zu kombinieren, eine Zelle mit Daten mit einer leeren Zelle in einer?
html:
<table border="1" id="testTable">
<tr>
<td>First</td>
<td>A</td>
<td>A</td>
</tr>
<tr>
<td>First</td>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>Second</td>
<td>V</td>
<td>S</td>
</tr>
<tr>
<td>Third</td>
<td>D</td>
<td>H</td>
</tr>
<tr>
<td>Third</td>
<td>E</td>
<td>E</td>
</tr>
</table>
js:
var seenArray = {};
$('#testTable td').each(function()
{
var index = $(this).index();
var txt = $(this).text();
if (seenArray[index] === txt)
{
$(this).text(''); //I think here should be "marging"
}
else
{
seenArray[index] = txt;
}
});
P. S. Eine weitere Sache, die die Daten ursprünglich abgerufen im json-array ist, dann weiß ich .parseJSON()
ersten und die Daten in der Tabelle mit:
for (var i = 0; i < obj.length; i++)
{
tr = $('<tr/>');
tr.append("<td>" + obj[i]['columnA'] + "</td>");
tr.append("<td>" + obj[i]['columnB'] + "</td>");
tr.append("<td>" + obj[i]['columnC'] + "</td>");
$('#testTable').append(tr);
}
UPD
alFReD NSH gemacht eine gute Lösung für 2 Zellen. Hier ist seine Lösung.
Aber, wenn es mehr als 2 gleich große Zellen.
So, hier die "Erste" und "A" sollte eine Zelle?
Die "erste" und leeren Zelle darunter, die zusammengeführt werden sollen. Bitte überprüfen Sie die jsfiddle
Die "erste" und leeren Zelle darunter, die zusammengeführt werden sollen. Bitte überprüfen Sie die jsfiddle
InformationsquelleAutor Aleksey Potapov | 2014-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich, was du meinst, hier meine bearbeitete version: http://jsfiddle.net/djhU7/4/
Also statt
$(this).text('')
ich Tat dies:Was ich Tat, war, das ich die
rowspan
der ersten Zelle 2. Das Attribut "gibt an, für wie viele Zeilen sich die Zelle erstreckt." die machen die oben genannten Zelle, die doppelt so groß sind, und ich versteckte die Zelle mit dem Duplikat-Informationen, so dass die zusätzliche Zelle Weg gehen wird. Beachten Sie, dass das entfernen der Zelle ruinieren die index-Prüfung für die nächste Zelle. Das war nur ein quick-and-dirty-Lösung, aberrowspan
- Attribut verwendet werden, irgendwo zu erreichen.Hier ist eine andere version, die festlegt rowspan auf die Zeit beim einlegen der Zellen in die Tabelle, neben der Tatsache, dass es funktioniert mit 3 doppelten Zellen und mehr, es ist auch schneller, weil es vermeidet re-rendering der Tabelle(obwohl es kann optimiert werden, aber ich glaube nicht, dass in diesem moment, Sie will sich darum kümmern, vorzeitige Optimierung ist die Wurzel allen übels!): http://jsfiddle.net/g7uY9/1/
Es gab einen bug, bei dem die zweiten Zellen nicht verschmelzen, werde ich nur behoben, indem
hide
stattremove
.ja, mir ist aufgefallen, dass.
Man startet aus der letzten Reihe und arbeiten Sie Ihren Weg bis zu mehr als 2 gleiche Zellen
Ich wollte nicht sehen, dass Fehler, die behoben werden sollten hier: jsfiddle.net/g7uY9/1
InformationsquelleAutor Farid Nouri Neshat
Finden Sie die bessere Antwort für Ihre Abfrage mit der Zeile erweitern/reduzieren. Hier ist mein fiddel:
Jquery Zelle Zusammenführen
InformationsquelleAutor Arasu RRK
Ich mochte Farid erste Lösung, aber ich brauchte, um wählen Sie den Bereich der Zeilen und welche Spalten es angewendet werden würde, also machte ich ein paar Modifikationen (einschließlich der Möglichkeit von mehr als 2 Zellen Zusammenführen). http://jsfiddle.net/djhU7/72/
InformationsquelleAutor carla
Ich streckte carla die Lösung.
Mit zwei Funktionen, die wir Zusammenführen können horizontal oder vertikal
und einschließen oder ausschließen von Zellen miteinander zu verschmelzen.
versuchen Sie, die Beispiel arbeiten. https://jsfiddle.net/bn3u63pe
InformationsquelleAutor Dennis Kim
Siehe Beispiel Arbeiten hier.
InformationsquelleAutor Training at Manorama