无法读取 null 和其他 null 变量的属性“appendChild”
在开始之前,我只想让你知道我对 Web 开发还很陌生。我还想将其保留 100% javascript,因此暂时不使用 jquery 或其他语言。
以下代码源自此视频: https://www.youtube.com/watch?v=esa5hJegRfI
我收到的错误如下:
Uncaught TypeError: Cannot read property 'appendChild' of null at drawBarChart (script.js:58) at script.js:66
这是 javascript:
var sampleData = [23,45,14,47,24,57,24,35];
function _div(id){
return document.getElementById(id);
}
function drawBarChart(dataset, idOfContainer){
var chartContainer = _div(idOfContainer)
if(typeof(dataset) != "object"){
return;
}
var heightOfContainer = chartContainer.scrollWidth;
var widthOfContainer = chartContainer.scrollHeight;
var widthOfBar = parseInt(widthOfContainer / dataset.length) - 2;
for(var i = 0; i < dataset.length; i++){
var divElement = document.createElement("div");
divElement.setAttribute("class", "div2");
divElement.style.marginLeft = parseInt(i * 2 + i * widthOfBar) + "px";
divElement.style.height = parseInt(dataset[i]) + "px";
divElement.style.width = parseInt(widthOfBar) + "px";
divElement.style.top = (heightOfContainer - parseInt(dataset[i]) - 1) + "px";
chartContainer.appendChild(divElement);
}
return false;
}
drawBarChart(sampleData, "div1");
console.log();
由于相同的错误,变量 heightOfContainer 和 widthOfContainer 不起作用:
Uncaught TypeError: Cannot read property 'scrollWidth' of null at drawBarChart (script.js:42) at script.js:66
或
Uncaught TypeError: Cannot read property 'scrollHeight' of null at drawBarChart (script.js:44) at script.js:66
最后一个 appendChild 函数似乎不起作用,我已经查看了其他类似的问题,但似乎找不到一。 相关的 HTML 代码只是一个 div,但如果您想要它,它在这里:
<div id="div1" ></div>
我知道这个错误非常个人化,不会影响很多人,但我已经在其他地方寻求帮助,但我找不到它不起作用的原因。希望您能帮忙,谢谢您的时间。
您的代码在 DOM 准备好之前就已加载,因此选择器无法在页面上找到这些元素。
您可以将 JS 放在页面底部,以便在代码运行之前完全加载 DOM,反过来您的
div
元素可供选择器使用。
这是一个 jsbin。