Как изменить размер столбцов таблицы с помощью JavaScript

StackOverflow https://stackoverflow.com/questions/807528

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня проблема с javascript.
У меня есть список ячеек таблицы, хранящийся в TabList.
Я хочу найти максимальную ширину, а затем установить эту ширину для всех них.
Пример кода находится здесь, но настройка ширины не работает.

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";
}

Я прокомментировал свои попытки..
Любая помощь?
Этотмне не помогло..

обновлять:
Я уверен, что TabList — это список ячеек, потому что я проверял имя класса.
Я выполняю цикл до TabList.length-1, потому что хочу, чтобы последняя ячейка заполняла остальную ширину таблицы.

Это было полезно?

Решение

Я бы посоветовал вам удалить все CSS/стили со страницы и протестировать их, чтобы изолировать проблему.Подобные вещи часто усложняются CSS.

Другие советы

Если вы установите ширину всей таблицы равной --i*MaxTabWidth.Будет ли это равномерно распределять столбцы?Предположим, ваша таблица называется myTable.

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

Редактировать:Также не стал бы

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

пропустить последний столбец, остановившись на TabList.length-2?

Что бы это ни стоило, в jQuery это можно сделать с помощью следующего скрипта, где ваша таблица имеет идентификатор «myTable».Если у вас есть достаточный контроль над средой, чтобы добавить ее в фреймворк, я настоятельно рекомендую это, поскольку это значительно упрощает подобные задачи.

    var maxWidth = 0;

    $("#myTable td").each(function() {
        if ($(this).width() > maxWidth) {
            maxWidth = $(this).width();
        }
    });
    $("#myTable td").width(maxWidth);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top