Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos,
Então eu estava aqui programando e me peguei numa dúvida, o que muda ao usar createElement ou innerHTML para criar novos objetos?
É claro que em algumas ocasiões só um ou outro serve, como em casos de insertBefore por exemplo.
Mas há alguns casos que ambos podem ser implementados, como esse:
Tenho uma tag TD e dentro dela quero inserir outra tabela. Qual a diferença de fazer
var td = document.getElementById('tdid')td.innerHTML = '<table><tr><td>Conteúdo</td></tr></table>'
e
var td = document.getElementById('tdid')var tbl = document.createElement('table')var tr = document.createElement('tr')var novatd = document.createElement('td')novatd.innerHTML = 'conteúdo'tr.appendChild(novatd)tbl.appendChild(tr)td.appendChild(tbl)?
Obrigado.
"E sobre o innerHTML?
Quando o Internet Explorer 4 chegou, o innerHTML nasceu, um jeito fácil de gerar e modificar conteúdo. Era um modo para ler conteúdo de um elemento muito mais fácil do que as recomendação original do W3C. Esse é um caso especial, um elemento que contém childNodes que são elementos e nós queremos ler todo o conteudo.
Para fazer isso somente com DOM, você precisa fazer o trabalho chato de verificar o nodeType e ler os valores de cada childNode. innerHTML é muito mais fácil de usar, mas tem alguns inconvenientes. Por exemplo, você não tem nenhuma referência aos elementos que você criou com ele. Além disso, o HTML só é relacionado com o HTML, não com o XML, e DOM foi feito para atravessar qualquer marcação."
FONTE: Tudo sobre Javascript não-obstrutivo - Parte 03 (Criando e destruindo conteúdo) - By Andre Metzen