它说TypeError:document.getElementById(...)为null

Tah*_*afa 22 javascript dom runtime-error innerhtml getelementbyid

虽然我把一个参数推到了getElementById我想知道这个'是null'错误来自哪里?

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

document.getElementById(elmId).innerHTML = value;

Line 75  
Run Code Online (Sandbox Code Playgroud)

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

Ole*_*mak 43

确保脚本放在您尝试操作的文档的BODY元素底部,而不是放在HEAD元素中,或者放在要"获取"的任何元素之前.

如果您导入脚本或者内联是无关紧要的,重要的是放置.您不必将命令放在函数中; 虽然这是一个很好的做法,你可以直接调用它,它工作得很好.


bit*_*its 23

所有这些导致null:

document.getElementById('volume');
document.getElementById('bytesLoaded');
document.getElementById('startBytes');
document.getElementById('bytesTotal');
Run Code Online (Sandbox Code Playgroud)

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

function updateHTML(elmId, value) {
  var elem = document.getElementById(elmId);
  if(typeof elem !== 'undefined' && elem !== null) {
    elem.innerHTML = value;
  }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*lin 9

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


小智 8

您可以使用JQuery在启动客户端脚本之前确保文档的所有元素都已准备就绪

$(document).ready(
    function()
    {
        document.getElementById(elmId).innerHTML = value;
    }
);
Run Code Online (Sandbox Code Playgroud)