我正在尝试使用 Google 可视化 API 创建一个图表,使用 javascript 计算对选中的单选按钮的值求和,但是我无法让 API 接受输出作为散点图的数据。
Javascript:
$(document).ready(function(){
var radios = $('input[type=radio]');
var evalResult = function(){
var numQuestions = 80;
var sum1 = 0;
var sum2 = 0;
var expr_str = '';
for(var i = 1; i <= numQuestions; i++){
var q = $("input[type=radio][name=q"+i+"]:checked").val();
var value = q.split(',');
sum1 += parseInt(value[0]);
sum2 += parseInt(value[1]);
}
var total = eval("['',''],[" + sum1 + "," + sum2 + "]");
}
evalResult();
radios.change(evalResult);
});
我的印象是,我需要做的就是按照 API 可以接受的方式格式化数据,然后像这样调用它:
var data = new google.visualization.arrayToDataTable(total);
我尝试了各种不同的解决方案,一些是文档建议的,另一些是我在其他地方找到的类似方法的示例,但似乎没有任何效果。作为这类事情的新手,我显然遗漏了一些简单的东西或者只是做错了。任何帮助将不胜感激,谢谢。
最佳答案
你需要在你的函数之前定义total
$(document).ready(function(){
var radios = $('input[type=radio]');
var total = 0; //<<<<<<<<<<<<<<<<<< here
var evalResult = function(){
var numQuestions = 80;
var sum1 = 0;
var sum2 = 0;
var expr_str = '';
for(var i = 1; i <= numQuestions; i++){
var q = $("input[type=radio][name=q"+i+"]:checked").val();
var value = q.split(',');
sum1 += parseInt(value[0]);
sum2 += parseInt(value[1]);
}
total = eval("['',''],[" + sum1 + "," + sum2 + "]"); // <<< remove var from here
}
alert(total); // output should be 0
evalResult();
alert(total); // output should be your total
radios.change(evalResult);
});
关于javascript - 使用计算总和作为 Google Chart 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578194/