Il est écrit que TypeError: document.getElementById ( ... ) est null
Bien que j'ai poussé un paramètre getElementById je me demande où est-ce 'est null' erreur vient-il?
TypeError: document.getElementById(...) is null
[Break On This Error]
document.getElementById(elmId).innerHTML = value;
Line 75
en plus de cela, je me demande pourquoi le titre et le temps ne se sont pas affichés à moins que je clique sur une de ces photos de playlist?
7 réponses
Tous ces résultats dans null
:
document.getElementById('volume');
document.getElementById('bytesLoaded');
document.getElementById('startBytes');
document.getElementById('bytesTotal');
vous devez faire une vérification nulle dans updateHTML comme ceci:
function updateHTML(elmId, value) {
var elem = document.getElementById(elmId);
if(typeof elem !== 'undefined' && elem !== null) {
document.getElementById(elmId).innerHTML = value;
}
}
assurez-vous que le script est placé dans le bas de l'élément BODY du document que vous essayez de manipuler, pas dans L'élément tête ou placé avant aucun des éléments que vous souhaitez pour "obtenir".
cela n'a pas d'importance si vous importez le script ou s'il est en ligne, la chose importante est le placement. Vous n'avez pas à placer la commande dans une fonction non plus; bien que ce soit une bonne pratique, vous pouvez simplement l'appeler directement, cela fonctionne très bien.
cela signifie cet élément avec id
passé getElementById()
n'existe pas.
Vous pouvez utiliser JQuery pour s'assurer que tous les éléments des documents sont prêts avant de lancer le script côté client
$(document).ready(
function()
{
document.getElementById(elmId).innerHTML = value;
}
);
dans votre code, vous pouvez trouver cette fonction:
// Update a particular HTML element with a new value
function updateHTML(elmId, value) {
document.getElementById(elmId).innerHTML = value;
}
plus Tard, vous appelez cette fonction avec plusieurs paramètres:
updateHTML("videoCurrentTime", secondsToHms(ytplayer.getCurrentTime())+' /');
updateHTML("videoDuration", secondsToHms(ytplayer.getDuration()));
updateHTML("bytesTotal", ytplayer.getVideoBytesTotal());
updateHTML("startBytes", ytplayer.getVideoStartBytes());
updateHTML("bytesLoaded", ytplayer.getVideoBytesLoaded());
updateHTML("volume", ytplayer.getVolume());
le premier paramètre est utilisé pour le" getElementById", mais les éléments avec ID" bytesTotal"," startBytes"," bytesLoaded "et" volume " n'existent pas. Vous aurez besoin de les créer, puisqu'ils retourneront null.
j'ai eu le même message d'erreur. Dans mon cas j'ai eu div multiple avec même id dans une page. J'ai renommé l'autre id du div utilisé et corrigé le problème.
confirmez donc si l'élément:
- existe avec id
- ne pas avoir de doublons avec id
- confirmez si le script s'appelle
j'ai le même problème. C'est juste que le script javascript se charge trop vite--avant que L'élément HTML ne soit chargé. Donc le navigateur renvoie null, puisque le navigateur ne peut pas trouver où est l'élément que vous aimez manipuler.