Bug do appendChild em tabelas no Internet Explorer

Hoje de manhã eu estava testanto um script que adicionava em uma div uma tabela e dados à essa tabela. Porém, o script não funcionava corretamente no Internet Explorer. Após alguma pesquisa, cheguei a http://blogs.acceleration.net/russ/archive/2005/03/23/747.aspx . A questão é que para o appendChild funcionar numa tabela no Internet Explorer, é necessário criar o TBODY.

Página de teste: http://waltercruz.com/devel/javascript/appendchild.html .
Nessa página, tem dois botões que criam tabelas via script. A função createtable(2) funciona no internet explorer. A createtable(1) não.

function createtable(n){
        var alvo = document.getElementById(‘table’ + n);
        var table = document.createElement("TABLE");
        var linha = document.createElement("TR");
        var campo = document.createElement("TD");
        switch(n){
          case 1:
            campo.innerHTML = "Campo da tabela " + n;
            linha.appendChild(campo);
            table.appendChild(linha);
            alvo.appendChild(table);
            break;
        case 2:        
          var tbody = document.createElement("TBODY");
          campo.innerHTML = "Campo da tabela " + n;
          linha.appendChild(campo);
          tbody.appendChild(linha);
          table.appendChild(tbody);
          alvo.appendChild(table);
          break;
        }
}
 
This entry was posted in JavaScript and tagged , , , , . Bookmark the permalink.

10 Responses to Bug do appendChild em tabelas no Internet Explorer

  1. Evandro Gaeta [Visitante] says:

    O Createtable2 não funcionou no IE.
    Dia que não há suporte para esta interface.

  2. William [Visitante] says:

    cara, como eu ODEEEEIO o IE….

    tentei inserir linhas em uma tabela q já existia…. impocivel, mesmo com isso q vc falou, tive q usar um método proprietario da Micro$oft para isso….

    var linha = document.getElementById(“tabela”).insertRow(-1);
    var campo = document.createElement(“TD”).innerHTML = “conteudo”;
    linha.appendChild(campo);

    flw….

  3. Adriana [Visitante] says:

    Cara, valeu! Resolveu o meu problema! Obrigada!

  4. hehehe

    Valeu Adriana :)

    Espero poder continuar sendo útil!

  5. Putz kra, vc salvou minha vida agora…adicionei uma linha na função e resolveu o problema.
    Maldito IE…Bendito TBODY…
    valeu!

  6. Hehehee .. É isso aí Douglas :) O IE as vezes é muito chato!

  7. Denis [Visitante] says:

    Poh… dois anos depois e a dica me salvou
    Caramba! Esse negócio de ter que ter TBody é fo&%¨.
    Valeu.

  8. Lucas Rossini [Visitante] says:

    Valeu!!!!
    Me salvou!!

  9. Pingback: Por que Internet Explorer não tem suporte 100% no Taulukko – Blog do Taulukko

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>