Pergunta

Eu tenho um problema com javascript.
Eu tenho uma lista de células das tabelas guardadas em TabList.
Eu quero encontrar a largura máxima, em seguida, defina essa largura para todos eles.
Um código de exemplo está aqui, mas a definição da largura não está funcionando.

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

Tenho comentado minhas tentativas ..
Qualquer ajuda?
Este não fazer o truque para mim ..

atualização:
Estou certo de que TabList é uma lista de células porque eu estava verificando o className.
Estou looping até TabList.length-1, porque eu quero que a última célula para preencher o resto da largura da tabela.

Foi útil?

Solução

Eu sugiro que você remover todas as css / styling da página e testá-lo para isolar o problema. Coisas como esta são muitas vezes complicada por css.

Outras dicas

Se você definir a largura da tabela inteira para --Eu * MaxTabWidth. Oxalá distribuir uniformemente as colunas? Suponha que sua tabela é nomeado myTable.

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

Edit: também não

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

pular a última coluna, parando em TabList.length-2?

Por que vale a pena, em jQuery isso pode ser feito com o script seguinte, onde sua mesa tem o id de "myTable". Se você tem controle suficiente sobre o ambiente para adicionar em um quadro, eu recomendo-o, uma vez que torna as tarefas como estes muito mais fácil.

    var maxWidth = 0;

    $("#myTable td").each(function() {
        if ($(this).width() > maxWidth) {
            maxWidth = $(this).width();
        }
    });
    $("#myTable td").width(maxWidth);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top