Come faccio ad aggiungere un div e riprenderlo più tardi
-
09-06-2019 - |
Domanda
Penso che questo sia specifico per IE 6.0 ma...
In JavaScript aggiungo a div
al DOM.Assegna un id
attributo.Quando più tardi provo a ritirare il file div
dal id
tutto quello che ottengo è null
.
Eventuali suggerimenti?
Esempio:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);
alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );
Stampe di avviso "::null"
Sembra funzionare bene con Firefox 2.0+
Soluzione
Oltre a quanto suggeriscono le altre risposte (che è necessario inserire effettivamente l'elemento nel DOM affinché possa essere trovato tramite getElementById()
), è inoltre necessario utilizzare un nome di attributo in lettere minuscole affinché IE6 lo riconosca come 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") );
...risponde come previsto:
Added:obj_1000:obj_1000:[object]
Secondo il Documentazione MSDN per setAttribute()
, fino a IE8 c'è un optional terzo parametro che controlla se fa distinzione tra maiuscole e minuscole rispetto al nome dell'attributo.Indovina qual è l'impostazione predefinita...
Altri suggerimenti
Il div deve essere aggiunto a un elemento affinché faccia parte del documento.
document.appendChild(newDiv);
alert( document.getElementById("obj_1000") );
Devi aggiungere il div al dom.
// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);
newDiv.setAttribute( "ID", "obj_1000" );
dovrebbe essere
nuovoDiv.id = "oggetto_1000";
Hummm, grazie per avermi messo sulla strada giusta ragazzi... era strano ma si scopre che se cambio le maiuscole in minuscole, tutto inizia a funzionare bene...
Risultato finale:
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);
alert("Added:" +
newDiv.getAttribute("id") + ":" +
newDiv.id + ":" +
document.getElementById("obj_1000"));
STRANO... MOLTO STRANO