Como redimensionar colunas da tabela largura de JavaScript
-
03-07-2019 - |
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.
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);