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+

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top