Frage

Ich habe ein Problem mit Javascript.
Ich habe eine Liste von Tabellen bei TabList gespeicherten Zellen.
Ich möchte die maximale Breite zu finden, und dann setzen Sie diese Breite auf alle von ihnen.
Ein Beispielcode ist hier, aber die Einstellung der Breite funktioniert nicht.

var MaxTabWidth = 0;
for (var i = 0; i < TabList.length-1; i++)
{
  if (TabList[i].offsetWidth>MaxTabWidth) 
    MaxTabWidth = TabList[i].offsetWidth;
}

for (var i = 0; i < TabList.length-1; i++)
{
  TabList[i].style.width = MaxTabWidth+"px";
  // TabList[i].width = MaxTabWidth+"px";
  // TabList[i].offsetWidth = MaxTabWidth+"px";
}

Ich habe meine Versuche, kommentiert ..
Irgendeine Hilfe?
Diese nicht den Trick für mich tun ..

Update:
Ich bin sicher, TabList eine Liste von Zellen ist, weil ich den Klassenname wurde überprüft.
Ich Looping bis TabList.length-1, weil ich die letzte Zelle will den Rest der Tabellenbreite zu füllen.

War es hilfreich?

Lösung

Ich würde vorschlagen, Sie alle css / Styling von der Seite entfernen und testen sie das Problem zu isolieren. Dinge wie diese sind durch CSS oft kompliziert.

Andere Tipps

Wenn Sie die Breite der gesamten Tabelle * MaxTabWidth -I. Wäre das gleichmäßig die Spalten verteilen? Angenommen, Ihre Tabelle namens myTable.

document.getElementById('myTable').width = new String(--i*MaxTabWidth)

Edit: Auch würde nicht

for (var i = 0; i < TabList.length-1; i++)

überspringt die letzte Spalte um TabList.length-2 zu stoppen?

Für was es wert ist, in jQuery kann dies mit dem folgenden Skript durchgeführt werden, wo Ihre Tabelle die ID „myTable“ hat. Wenn Sie genug Kontrolle über die Umwelt in einem Rahmen hinzuzufügen, würde ich es sehr empfehlen, da es Aufgaben wie diese viel einfacher macht.

    var maxWidth = 0;

    $("#myTable td").each(function() {
        if ($(this).width() > maxWidth) {
            maxWidth = $(this).width();
        }
    });
    $("#myTable td").width(maxWidth);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top