Comment puis-je résoudre ce “Impossible de lire la propriété 'appendChild' null,” erreur?
J'ai essayé d'utiliser ce code ci-dessous, qui ajoute des boutons en diaporama sur mon site:
window.onload = function loadContIcons() {
var elem = document.createElement("img");
elem.src = "http://arno.agnian.com/sites/all/themes/agnian/images/up.png";
elem.setAttribute("class", "up_icon");
var id = "views_slideshow_controls_text_next_slideshow-block";
if (id !== 0) {
document.getElementById(id).appendChild(elem);
} else console.log("aaaaa");
var elem1 = document.createElement("img");
elem1.src = "http://arno.agnian.com/sites/all/themes/agnian/images/down.png";
elem1.setAttribute("class", "down_icon");
var id1 = "views_slideshow_controls_text_previous_slideshow-block";
if (id1 !== 0) {
document.getElementById(id1).appendChild(elem1);
} else console.log("aaaaa");
}
Sur la première page, où j'ai diaporama tout fonctionne bien, mais sur les autres pages de l'erreur Cannot read property 'appendChild' of null
se produit.
Vous pouvez poster vos sites de code ?
Je ne comprends pas comment ce message d'erreur n'est pas de communiquer clairement le problème. Vous obtiendrez cette erreur à chaque fois que l'un de ces
Déboguer avec chrom outils de dev et de points de rupture.
Aussi, ces tests pour les "id" et "id1" n'étant pas égal à zéro immédiatement après la définition de l'une de ces longues chaînes n'ont pas de sens.
Au lieu de vérifier pour voir si
Je ne comprends pas comment ce message d'erreur n'est pas de communiquer clairement le problème. Vous obtiendrez cette erreur à chaque fois que l'un de ces
getElementById()
appels retourne null
.Déboguer avec chrom outils de dev et de points de rupture.
Aussi, ces tests pour les "id" et "id1" n'étant pas égal à zéro immédiatement après la définition de l'une de ces longues chaînes n'ont pas de sens.
Au lieu de vérifier pour voir si
id !== 0
, qui ne pourront jamais être faux, vérifiez que document.getElementById()
renvoie quelque chose?OriginalL'auteur Arno | 2014-07-30
Vous devez vous connecter pour publier un commentaire.
L'élément n'a pas été ajouté, et pourtant, il est donc égale à null. L'Id ne sera jamais = 0. Lorsque vous appelez getElementById(id), elle est nulle puisqu'il n'est pas une partie de la dom pourtant, à moins que votre id statique est déjà sur le DOM. Faire un appel par le biais de la console pour voir de quoi il en retourne.
var k = document.getElementById("views_slideshow_controls_text_previous_slideshow-block"); if(k != null) k.appendChild(elem1);
un autre contrôle de sécurité if(typeof k !=="undefined")
Comment faire pour rectifier cette erreur ?
OriginalL'auteur eg_dac
Simplement réorganiser ou assurez-vous que, dans les DOM ou HTML est chargé avant le JavaScript.
OriginalL'auteur Arun Prasad E S