527 Stimmen

Colspan alle Spalten

Wie kann ich angeben, dass ein td-Tag alle Spalten umfassen soll (wenn die genaue Anzahl der Spalten in der Tabelle variabel/schwer zu bestimmen ist, wenn der HTML-Code gerendert wird)? w3schools erwähnt, dass Sie colspan="0" verwenden können, sagt aber nicht genau, welche Browser diesen Wert unterstützen (IE 6 steht auf unserer Liste der zu unterstützenden Browser).

Es scheint, dass das Festlegen von colspan auf einen Wert größer als die theoretische Anzahl der Spalten, die Sie haben können, funktioniert, aber nicht, wenn Sie table-layout auf fixed setzen. Gibt es Nachteile bei der Verwendung eines automatischen Layouts mit einer großen Anzahl für colspan? Gibt es eine korrektere Möglichkeit, dies zu tun?

4 Stimmen

Die akzeptierte Antwort bezieht sich darauf, wie man dies NICHT tun sollte, und es scheint ernsthafte Leistungs-/Konsistenznachteile zu haben. Also denke ich, die Antwort lautet: Die Anzahl der Spalten festcodieren. Ich sehe keine praktikable Alternative.

2 Stimmen

Tolle Frage, aber du hättest einfach keine Antwort akzeptieren sollen, wenn keine davon richtig ist.

-2voto

skiwi Punkte 62821

Möchte nur meine Erfahrung hinzufügen und hierauf antworten.
Hinweis: Dies funktioniert nur, wenn Sie eine vordefinierte table und ein tr mit ths haben, aber Ihre Zeilen (zum Beispiel über AJAX) dynamisch laden.

In diesem Fall können Sie die Anzahl der th's in Ihrer ersten Kopfzeile zählen und diese verwenden, um die gesamte Spalte zu überspannen.

Dies kann erforderlich sein, wenn Sie eine Nachricht übermitteln möchten, wenn keine Ergebnisse gefunden wurden.

So etwas in jQuery, wobei table Ihre Eingabetabelle ist:

var trs = $(table).find("tr");
var numberColumns = 999;
if (trs.length === 1) {
    //Annahme, dass eine Zeile bedeutet, dass es ein Header ist
    var headerColumns = $(trs).find("th").length;
    if (headerColumns > 0) {
        numberColumns = headerColumns;
    }
}

0 Stimmen

Wie die zuvor veröffentlichte JavaScript-Lösung generalisiert auch diese nicht gut; die Anzahl von ths entspricht nicht unbedingt der Anzahl von Spalten, da einige von ihnen ein colspan haben können, und daher wird dies nicht für jeden funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X