Javascript 从dataTable动态显示图表

Javascript 从dataTable动态显示图表,javascript,xhtml,amcharts,Javascript,Xhtml,Amcharts,我想使用Amcharts显示图表,我有一个数据库中使用count/groupBy的数据表。现在,我想动态显示图表,我想迭代dataTable,并在chartData数组中连续生成第一列和第二列。 这是我的数据表: Stat.xhtml <h:form id="ff"> <rich:dataTable id="tablereparation" value="#{stat.results}" var="rep"> <h:column headerClass="hea

我想使用
Amcharts
显示图表,我有一个数据库中使用
count/groupBy
的数据表。现在,我想动态显示图表,我想迭代dataTable,并在
chartData
数组中连续生成第一列和第二列。 这是我的数据表:

Stat.xhtml

<h:form id="ff">
<rich:dataTable id="tablereparation"  value="#{stat.results}" var="rep">
<h:column headerClass="headerleftfacet">
<h:outputText id="np"  value="#{rep[0]}" /></h:column>
<h:column headerClass="headermiddlefacet">
<h:outputText id="nbpanne" value="#{rep[1]}" />
</h:column>
</rich:dataTable>
</h:form>

test.js

var chart;
var legend;
//my attempt
var table = document.getElementById('ff:tablereparation');
var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
    var cells = rows[i].getElementsByTagName("td");

    for (var j = 0; j <= 0; j++) {
        var cell = cells[j];
      alert(cells.innerHtml);
    }

}

var chartData = [{
    panne: ?,
    percpangrave: ?
}];


chart = new AmCharts.AmPieChart();
chart.dataProvider = chartData;
chart.titleField = "panne";
chart.valueField = "percpangrave";
chart.outlineColor = "#FFFFFF";
chart.outlineAlpha = 0.8;
chart.outlineThickness = 2;

legend = new AmCharts.AmLegend();
legend.position = "bottom";
legend.align = "center";
legend.markerType = "square";
legend.valueText = "";
chart.addLegend(legend);

chart.write("chartdiv1");
var图;
变量图例;
//我的尝试
var table=document.getElementById('ff:TableRepaition');
var rows=table.getElementsByTagName(“tbody”)[0].getElementsByTagName(“tr”);
对于(变量i=0;i对于(var j=0;j不知道这种数据表HTML,用于读取单元格信息的JavaScript看起来不正确。您可以直接从rows变量获取行的单元格,因为每个
都包含一个关联的
单元格
数组,只需从其中提取innerHTML值并动态地读取数组。下面是一个示例,它还演示了一种快速获取行的方法:

var图;
变量图例;
//var table=document.getElementById('ff:TableRepaition');
//var rows=table.getElementsByTagName(“tbody”)[0].getElementsByTagName(“tr”);
//较短的方法:
var rows=document.queryselectoral(#ff\\:tableRepaition tr);//注意双斜杠可以将冒号作为文字字符转义,因为它是css中的选择器
var chartData=[];
对于(变量i=0;i
#chartdiv1{
宽度:100%;
高度:300px;
}

标题1
30
标题2
10
标题3
60
标题4
40

谢谢你的回答,但是当我试图显示
行[I].单元格[0].innerHTML
时,我得到了这个结果
Panne grave
,我只需要值,在本例中
Panne grave
只是我用
textContent
替换了
innerHTML
,它就可以工作了