javascript - 我们如何动态传递图形类型

标签 javascript html

我试图通过从选择列表中选择选项来动态传递图形类型。下面是我的代码:

<html>
  <head>
  </head>
  <body>
    <select id="ChartType" name="ChartType" onchange="drawChart()">
      <option value = "0">Select Chart Type
      <option value="PieChart">PieChart
      <option value="Histogram">Histogram
      <option value="LineChart">LineChart
      <option value="BarChart">BarChart
    </select>
    <div id="chart_div" style="border: solid 2px #000000;" ></div>
    <p id="demo"></p>
    <p id="demo1"></p>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    // Load the Visualization API and the piechart package.
    google.load('visualization', '1.0', {'packages':['corechart']});
    // Set a callback to run when the Google Visualization API is loaded.
    google.setOnLoadCallback(drawChart);
    // Callback that creates and populates a data table,
    // instantiates the pie chart, passes in the data and
    // draws it.      
    function drawChart() {
        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');    
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 4],
          ['Olives', 1],
          ['Zucchini', 5],
          ['Pepperoni', 2]
        ]);         
        var a = document.getElementById("ChartType").value;
        document.getElementById("demo1").innerHTML = "You selected: " + a;  
        // Set chart options
        var options = {
            'title':'How Much Pizza I Ate Last Night',
            'width':400,
            'height':300
        };             
        // Instantiate and draw our chart, passing in some options.
        //passing the value which I am reading after selecting the options from the select.
        var chart = new google.visualization.document.getElementById("ChartType").value(document.getElementById('chart_div'));
        chart.draw(data, options);
    }
    </script>
  </body>
</html>

但是我无法获取图表。我正在尝试选择选项作为直方图,并且我希望图形成为直方图,如果我选择饼图,则图形应该是具有相同值的饼图。

最佳答案

此行有错误:

var chart = new google.visualization.document.getElementById("ChartType").value(document.getElementById('chart_div'));

应该是:

var chart = new google.visualization[document.getElementById("ChartType").value](document.getElementById('chart_div'));

要使用字符串作为键,您必须使用[]。原因如下:

var a = "someProperty";
var myObject = {
  someProperty: 3,
  a: 4
};

console.log(myObject.a); // 4
console.log(myObject[a]); // 3
console.log(myObject.someProperty); // 3
console.log(myObject["someProperty"]); // 3

关于javascript - 我们如何动态传递图形类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825603/

相关文章:

Javascript 原生 .remove() 不适用于 HTMLCollection。 JavaScript 错误?

Html 文本居中对齐

javascript - 将内容从父页面附加到新的浏览器窗口

python - Beautiful soup 中的正则表达式不起作用

javascript - div 顶部的文本标签

javascript - NodeJS MySQL : Query when second parameter is null

VScode 中 JavaScript 颜色突出显示错误

javascript - 使用jquery的链接元素的绝对位置

html - 我在 iPhone 上的输入字段中出现灰线

javascript - 当用户点击它时更改 div 的颜色