Javascript 类型错误:document.getElementById(…)为null 线图示例 var monthsData={ 标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”], 数据集:[ { fillColor:“rgba(172194132,0.4)”, strokeColor:#ACC26D“, 点颜色:“#fff”, pointStrokeColor:#9DB86D“, 数据:[20315699251 305247] } ] }; var月数=document.getElementById(“chartData”).getContext(“2d”); 新图表(月)。线(月数据);
我已经看到了以前关于同一问题的错误,并纠正了所有这些错误,但我的错误没有得到解决。我正在使用chart.js库。将您的Javascript 类型错误:document.getElementById(…)为null 线图示例 var monthsData={ 标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”], 数据集:[ { fillColor:“rgba(172194132,0.4)”, strokeColor:#ACC26D“, 点颜色:“#fff”, pointStrokeColor:#9DB86D“, 数据:[20315699251 305247] } ] }; var月数=document.getElementById(“chartData”).getContext(“2d”); 新图表(月)。线(月数据);,javascript,Javascript,我已经看到了以前关于同一问题的错误,并纠正了所有这些错误,但我的错误没有得到解决。我正在使用chart.js库。将您的脚本标记放在包含canvas元素的div下面 之所以会出现错误,是因为在解释和执行脚本时,DOM中不存在画布 缔约国指出: 在浏览器继续解析页面之前,将立即获取并执行没有async或defer属性的脚本以及内联脚本 话虽如此,我的回答给出了错误的原因和一个简单的解决方法。查看更惯用的解决方案。将脚本标记放在包含画布元素的div下面 之所以会出现错误,是因为在解释和执行脚本时,DO
脚本
标记放在包含canvas
元素的div
下面
之所以会出现错误,是因为在解释和执行脚本时,DOM中不存在画布
缔约国指出:
在浏览器继续解析页面之前,将立即获取并执行没有async或defer属性的脚本以及内联脚本
话虽如此,我的回答给出了错误的原因和一个简单的解决方法。查看更惯用的解决方案。将
脚本
标记放在包含画布
元素的div
下面
之所以会出现错误,是因为在解释和执行脚本时,DOM中不存在画布
缔约国指出:
在浏览器继续解析页面之前,将立即获取并执行没有async或defer属性的脚本以及内联脚本
话虽如此,我的回答给出了错误的原因和一个简单的解决方法。查看更惯用的解决方案。您正在尝试在加载元素之前检索该元素。因此,在页面加载后使用事件处理程序加载脚本 加载事件在文档加载过程结束时激发。此时,文档中的所有对象都在DOM中,所有图像、脚本、链接和子帧都已加载完毕。()
window.onload=函数(){
var monthsData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”],
数据集:[{
fillColor:“rgba(172194132,0.4)”,
strokeColor:#ACC26D“,
点颜色:“#fff”,
pointStrokeColor:#9DB86D“,
数据:[20315699251 305247]
}]
};
var月数=document.getElementById(“chartData”).getContext(“2d”);
新图表(月)。线(月数据);
}
您正在尝试在加载元素之前检索该元素。因此,在页面加载后使用事件处理程序加载脚本
加载事件在文档加载过程结束时激发。此时,文档中的所有对象都在DOM中,所有图像、脚本、链接和子帧都已加载完毕。()
window.onload=函数(){
var monthsData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”],
数据集:[{
fillColor:“rgba(172194132,0.4)”,
strokeColor:#ACC26D“,
点颜色:“#fff”,
pointStrokeColor:#9DB86D“,
数据:[20315699251 305247]
}]
};
var月数=document.getElementById(“chartData”).getContext(“2d”);
新图表(月)。线(月数据);
}
当执行语句document.getElementById(“chartData”)
时,您会遇到问题,因为DOM尚未加载。所以它无法找到元素
您应该使用event
DOMContentLoaded事件在初始HTML文档完全加载和解析时触发,而不等待样式表、图像和子帧完成加载
document.addEventListener(“DOMContentLoaded”),函数(事件){
log(“DOM已完全加载并解析”);
var monthsData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”],
数据集:[
{
fillColor:“rgba(172194132,0.4)”,
strokeColor:#ACC26D“,
点颜色:“#fff”,
pointStrokeColor:#9DB86D“,
数据:[20315699251 305247]
}
]
};
var月数=document.getElementById(“chartData”).getContext(“2d”);
新图表(月)。线(月数据);
});
当执行语句document.getElementById(“chartData”)
时,您会遇到问题,因为DOM尚未加载。所以它无法找到元素
您应该使用event
DOMContentLoaded事件在初始HTML文档完全加载和解析时触发,而不等待样式表、图像和子帧完成加载
document.addEventListener(“DOMContentLoaded”),函数(事件){
log(“DOM已完全加载并解析”);
var monthsData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”],
数据集:[
{
fillColor:“rgba(172194132,0.4)”,
strokeColor:#ACC26D“,
点颜色:“#fff”,
pointStrokeColor:#9DB86D“,
数据:[20315699251 305247]
}
]
};
var月数=document.getElementById(“chartData”).getContext(“2d”);
新图表(月)。线(月数据);
});
像这样更改代码
<script>
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
var monthsData = {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [
{
fillColor: "rgba(172,194,132,0.4)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [203, 156, 99, 251, 305, 247]
}
]
};
var months = document.getElementById("chartData").getContext("2d");
new Chart(months).Line(monthsData);
});
</script>
线图示例
var monthsData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”],
数据集:[
{
fillColor:“rgba(172194132,0.4)”,
strokeColor:#ACC26D“,
点颜色:“#fff”,
pointStrokeColor:#9DB86D“,
<script>
window.onload = function() {
var monthsData = {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [{
fillColor: "rgba(172,194,132,0.4)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [203, 156, 99, 251, 305, 247]
}]
};
var months = document.getElementById("chartData").getContext("2d");
new Chart(months).Line(monthsData);
}
</script>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
console.log("DOM fully loaded and parsed");
var monthsData = {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [
{
fillColor: "rgba(172,194,132,0.4)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [203, 156, 99, 251, 305, 247]
}
]
};
var months = document.getElementById("chartData").getContext("2d");
new Chart(months).Line(monthsData);
});
</script>
<html>
<head>
</head>
<body>
<h2>Example of Line Graph</h2>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.js"></script>
<div>
<canvas id="chartData" width="600" height="400"></canvas>
</div>
<script>
var monthsData = {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [
{
fillColor: "rgba(172,194,132,0.4)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [203, 156, 99, 251, 305, 247]
}
]
};
var months = document.getElementById("chartData").getContext("2d");
new Chart(months).Line(monthsData);
</script>
</body>
</html>