首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >上面写着TypeError: document.getElementById(...)为空

上面写着TypeError: document.getElementById(...)为空
EN

Stack Overflow用户
提问于 2012-12-15 04:06:10
回答 5查看 139.4K关注 0票数 33

虽然我向getElementById推送了一个参数,但我想知道这个“is null”错误是从哪里来的?

TypeError: document.getElementById(...) is null
[Break On This Error]   

document.getElementById(elmId).innerHTML = value;

Line 75  

除此之外,我想知道为什么标题和时间不显示,除非我点击这些播放列表中的一个图片?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-15 04:16:24

所有这些结果都在null

document.getElementById('volume');
document.getElementById('bytesLoaded');
document.getElementById('startBytes');
document.getElementById('bytesTotal');

您需要在updateHTML中执行null检查,如下所示:

function updateHTML(elmId, value) {
  var elem = document.getElementById(elmId);
  if(typeof elem !== 'undefined' && elem !== null) {
    elem.innerHTML = value;
  }
}
票数 30
EN

Stack Overflow用户

发布于 2012-12-15 04:11:16

这意味着传递给getElementById()id元素不存在。

票数 12
EN

Stack Overflow用户

发布于 2012-12-15 04:17:12

在你的代码中,你可以找到这个函数:

// Update a particular HTML element with a new value
function updateHTML(elmId, value) {
  document.getElementById(elmId).innerHTML = value;
}

稍后,您将使用几个参数调用此函数:

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());

第一个参数用于"getElementById",但ID为"bytesTotal“、"startBytes”、"bytesLoaded“和”getElementById“的元素不存在。您需要创建它们,因为它们将返回null。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13885533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档