我是新来的 JavaScript 初学者,所以请多多包涵。
我正在尝试根据 jQuery xml 对象中的一些数据绘制一个 highcharts 图表。实际数据来自 SOAP 请求,但出于我的小提琴的目的,我现在只是将其粘贴到文本变量中。
只需单击“创建 HTML 表格和绘图”按钮并向下滚动即可查看图表。
我的 xml 数据示例如下:
<rowset>
<Row>
<Column0>0</Column0>
<Column1>101</Column1>
<Column2>US 1 LE 1 BU 1</Column2>
<Column3>110</Column3>
<Column4>CEO</Column4>
<Column5>Ledger USA PL</Column5>
<Column6>01-12</Column6>
<Column7>2012</Column7>
<Column8>20120101</Column8>
<Column10>240481</Column10>
</Row>
<Row>
<Column0>0</Column0>
<Column1>101</Column1>
<Column2>US 1 LE 1 BU 1</Column2>
<Column3>121</Column3>
<Column4>US Operations</Column4>
<Column5>Ledger USA PL</Column5>
<Column6>01-12</Column6>
<Column7>2012</Column7>
<Column8>20120101</Column8>
<Column9>0</Column9>
<Column10>2026166</Column10>
</Row>
我可以创建 x 轴类别,在图表 x 轴中显示会计期间(第 6 列)为 01-12、02-12 等:
var cats = [];
$($xml).find("Row").each(function () {
var column = $(this).find("Column6").text();
if ($.inArray(column, cats)===-1)
cats.push(column);
options.xAxis.categories = cats;
});
到目前为止,一切都很好。我正在为如何构建这个系列而苦苦挣扎。这是我目前所拥有的(Column4 应该是系列标签,Column10 是要为每个系列和每个时期绘制的数量):
$($xml).find("Row").each(function(i, series) {
var seriesOptions = {
name: $(series).find("Column4").text(),
data: []
};
$(series).find('Column10').each(function(i, point) {
seriesOptions.data.push(
parseInt($(point).text())
);
});
// add it to the options
options.series.push(seriesOptions);
});
这显然是错误的,因为我只是在搜索 xml 对象中的每一行。结果,我的图表显示了 30 多个系列,全部显示在 01-12 期间。我只是不确定如何写这个,以便为每个时期的第 4 列(例如“CEO”和“美国运营”)的每个不同值绘制图表,例如第 6 列(01-12、02-12 等) .
我希望这是有道理的,并为长篇大论道歉。我不希望任何人为我编写代码,但任何语法线索或建议或任何将不胜感激的东西。