document.getElementById('id of div that definately exists')
renvoie null.
J'ai initialement chargé le javascript en dernier afin de m'assurer que je n'aurais pas à me soucier de l'événement onload. J'ai également essayé d'utiliser l'événement onload. C'est très effrayant. Vos idées ou votre aide seraient grandement appréciées.
Elle peut être causée par:
Veuillez poster votre code.
Faites également attention à la façon dont vous exécutez le js sur la page. Par exemple, si vous faites quelque chose comme ceci:
(function(window, document, undefined){
var foo = document.getElementById("foo");
console.log(foo);
})(window, document, undefined);
Cela renverra null car vous appelleriez le document avant son chargement.
Meilleure option ..
(function(window, document, undefined){
// code that should be taken care of right away
window.onload = init;
function init(){
// the code to be called when the dom has loaded
// #document has its nodes
}
})(window, document, undefined);
Il pourrait y avoir plusieurs raisons pour lesquelles document.getElementById
ne fonctionne pas
Vous avez un ID invalide
Les jetons ID et NAME doivent commencer par une lettre ([A-Za-z]) et peuvent être suivis de n'importe quel nombre de lettres, chiffres ([0-9]), tirets ("-"), traits de soulignement ("_") , les deux-points (":") et les points ("."). (ressource: Quelles sont les valeurs valides pour l'attribut id en HTML? )
vous avez utilisé un identifiant que vous avez déjà utilisé en tant que <meta>
nom dans votre en-tête (par exemple copyright, auteur ...) ça a l'air bizarre mais ça m'est arrivé: si vous utilisez IE jetez un œil à (ressource: http : //www.phpied.com/getelementbyid-description-in-ie/ )
vous ciblez un élément à l'intérieur d'un cadre ou d'une iframe. Dans ce cas, si l'iframe charge une page dans le même domaine du parent, vous devez cibler le contentdocument
avant de rechercher l'élément (ressource: Appel d'un identifiant spécifique dans un cadre )
vous recherchez simplement un élément lorsque le nœud n'est pas effectivement chargé dans le DOM, ou peut-être que c'est une simple faute d'orthographe
Je doute que vous ayez utilisé le même identifiant deux fois ou plus: dans ce cas, document.getElementById
devrait renvoyer au moins le premier élément