Como posso adicionar uma div e buscá-lo mais tarde
-
09-06-2019 - |
Pergunta
Eu acho que este é específico para IE 6.0, mas...
Em JavaScript para adicionar uma div
para o DOM.Eu atribuir um id
atributo.Quando eu, mais tarde, tentar pegar o div
pelo id
tudo que eu tenho é null
.
Alguma sugestão?
Exemplo:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);
alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );
Alerta de impressões "::null"
Parece funcionar bem no Firefox 2.0+
Solução
Além de que outras respostas sugere que você precisa inserir o elemento no DOM para ele ser encontrados através de getElementById()
), você também precisará usar uma minúscula nome do atributo para que o IE6 para reconhecê-lo como o id
:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.body.appendChild(newDiv);
alert("Added:"
+ newDiv.getAttribute("id")
+ ":" + newDiv.id + ":"
+ document.getElementById("obj_1000") );
...responde conforme o esperado:
Added:obj_1000:obj_1000:[object]
De acordo com o Documentação do MSDN para setAttribute()
, até para o IE8 não é opcional terceiro parâmetro que controla se ele é ou não sensível a maiúsculas e minúsculas com relação ao nome do atributo.Acho que o padrão é...
Outras dicas
Div precisa ser adicionado a um elemento para fazer parte do documento.
document.appendChild(newDiv);
alert( document.getElementById("obj_1000") );
Você tem que adicionar a div para o dom.
// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);
newDiv.setAttribute( "ID", "obj_1000" );
deve ser
newDiv.id = "obj_1000";
Hummm, obrigado por me colocar no caminho certo galera...isso foi estranho, mas acontece que se eu alterar as maiúsculas para minúsculas, tudo começando a trabalhar muito bem...
Resultado Final:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);
alert("Added:" +
newDiv.getAttribute("id") + ":" +
newDiv.id + ":" +
document.getElementById("obj_1000"));
ESTRANHO...MUITO ESTRANHO