Question

Je pense que c'est spécifique à IE 6.0, mais...

En JavaScript j'ai ajouter un div pour les DOM.J'attribue un id attribut.Quand plus tard, j'ai essayer de ramasser le div par la id tout ce que j'obtiens est null.

Toutes les suggestions?

Exemple:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );

Alerte impressions "::null"

Semble bien fonctionner dans Firefox 2.0+

Était-ce utile?

La solution

En plus de ce que les autres réponses suggèrent (que vous devez réellement insérer l'élément dans le DOM pour qu'il soit trouvé par getElementById()), vous devez également utiliser un bas-de-casse le nom de l'attribut pour IE6 à le reconnaître comme l' 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") );

...répond comme prévu:

Added:obj_1000:obj_1000:[object]

Selon l' La documentation MSDN pour setAttribute(), jusqu'à IE8 il y a une option troisième paramètre qui contrôle si oui ou non il est sensible à la casse à l'égard du nom de l'attribut.Devinez ce que la valeur par défaut est...

Autres conseils

La div doit être ajouté à un élément pour qu'il soit inclus dans le document.

document.appendChild(newDiv);

alert( document.getElementById("obj_1000") );

Vous devez ajouter la div pour les dom.

// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);

newDiv.setAttribute( "ID", "obj_1000" );

devrait être

newDiv.id = "obj_1000";

Hummm, merci de me mettre sur la bonne voie les gars...c'était étrange, mais il s'avère que si je change le cas en minuscules, tout en commençant à travailler très bien...

Résultat 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"));

BIZARRE...TRÈS BIZARRE

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top