我试图在饼图中显示每个所有者的宠物百分比,如何将数据推送到饼图? for循环不断得到一个SyntaxError:意外的令牌变量。这是我的代码。
window.onload = function() {
var count = "<?php echo($i)?>";
var name = [];
var per = [];
var j = -1;
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title: {
text: "TB_PET"
},
data: [{
type: "pie",
startAngle: 240,
yValueFormatString: "##0.00\"%\"",
indexLabel: "{label} {y}",
Error here-->for(var i = 0; i < count; i++){
name[i] = document.getElementById(i).value;
per[j] = document.getElementById(j).value;
dataPoints: [
{y: per[j], label: name[i]}
]
j--;
}
}]
});
chart.render();
}
答案 0 :(得分:1)
您无法在作为参数传递给函数调用的对象文字(图表配置)内进行迭代。
在new CanvasJS.Chart(...)
调用之前迭代数据,并将变量作为配置对象的一部分传递。
在此迭代
var dataPoints = [];
for(...){
dataPoints.push(..);
]
然后按以下方式传递dataPoints
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title: {
text: "TB_PET"
},
data: [
{
type: "pie",
startAngle: 240,
yValueFormatString: '##0.00"%"',
indexLabel: "{label} {y}",
dataPoints: dataPoints
}
]
});
chart.render();
答案 1 :(得分:0)
注意:如果我的代表更高
,这将是评论我不熟悉php返回,但我首先要先将'count'变量手动更改为实际数字,然后才能继续前进。看来你的for循环正在将'count'变量作为一个字符串进行评估,然后抛出你看到的错误。
https://airbrake.io/blog/javascript-error-handling/unexpected-token