开发者问题收集

document.CreateElement(div) 不起作用......

2013-12-04
667

我尝试在运行时创建一个 div 元素,并在其中放置一个图表元素,但这似乎不起作用。

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', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);

        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':400};

        // Instantiate and draw our chart, passing in some options.
        //context.fillRect(0,0,100,100);
        div = document.createElement('div');
        div.style.position = "absolute";
        div.style.top = "0";
        div.style.left = "0";
        document.body.appendChild(div);
        var chart = new google.visualization.LineChart(document.getElementById('div'));
        chart.draw(data, options);
      }

当我在 html 中声明 div 时,它可以工作。我做错了什么吗?

2个回答

您正在执行 document.getElementById('div') ,但您创建的 div 的 id 尚未设置为 div 。您为什么不这样做呢:

var chart = new google.visualization.LineChart(div);

另一个选项是实际设置 id:

div.id = "div";
...
var chart = new google.visualization.LineChart(document.getElementById('div'));
Vivin Paliath
2013-12-04

您没有将 div 的 id 设置为 div 。您似乎应该使用:

var chart = new google.visualization.LineChart(div);
Explosion Pills
2013-12-04