Javascript 将数据插入jquery highcharts失败
我想把表中的数据放到图表中 首先加载表格,然后在主体关闭之前的底部,我将抓取数据到highcharts中显示 我试过了,但就是不起作用,我相信与语法有关的一些错误Javascript 将数据插入jquery highcharts失败,javascript,html,highcharts,overriding,pie-chart,Javascript,Html,Highcharts,Overriding,Pie Chart,我想把表中的数据放到图表中 首先加载表格,然后在主体关闭之前的底部,我将抓取数据到highcharts中显示 我试过了,但就是不起作用,我相信与语法有关的一些错误 <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script type="text/javascrip
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="../../includes/js/highcharts/highcharts.js"></script>
<script type="text/javascript" src="../../includes/js/highcharts/modules/exporting.js"></script>
</head>
<body>
bla bla bla
bla bla bla
bla bla bla
<table class="dataTbl">
<tbody>
<tr><td>fruit</td><td>qty</td></tr>
<tr><td>apple</td><td>1</td></tr>
<tr><td>banana</td><td>5</td></tr>
<tr><td>durian</td><td>3</td></tr>
</tbody>
</table>
//to load pie chart at the last, data obtain from table
<div id="container" style="width: 400px; height: 300px; margin: 0 auto"></div>
<script type="text/javascript">
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Top fruits'
},
tooltip: {
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
}
}
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
['Firefox', 45.0],
['IE', 26.8],
['Chrome', 12.8],
['Safari', 8.5],
['Opera', 6.2],
['Others', 0.7]
]
}]
//default series data sample given by highchart, how to override this?
});
$(".dataTbl > tbody > tr").each(function (index) {
if (index != 0) {
var chartnumbervalue = parseInt($(this).find("td:first").next('td').text());
var charttextvalue = jQuery.trim($(this).find("td:first").text());
//chart.series[0].data.push([charttextvalue, chartnumbervalue]);
//i want to push the data into series: data: but fail...
}
});
});
</script>
</body>
呜呜呜呜
呜呜呜呜
呜呜呜呜
果量
应用1
巴纳纳5
榴莲3
//要在最后加载饼图,请从表中获取数据
var图;
$(文档).ready(函数(){
图表=新的高点图表。图表({
图表:{
renderTo:'容器',
plotBackgroundColor:null,
plotBorderWidth:null,
plotShadow:false
},
标题:{
文字:“顶级水果”
},
工具提示:{
格式化程序:函数(){
返回“+this.point.name+”:“+this.percentage+”%”;
}
},
打印选项:{
馅饼:{
allowPointSelect:true,
光标:“指针”,
数据标签:{
启用:对,
颜色:'#000000',
连接器颜色:'#000000',
格式化程序:函数(){
返回“+this.point.name+”:“+this.percentage+”%”;
}
}
}
},
系列:[{
键入“pie”,
名称:“浏览器共享”,
数据:[
['Firefox',45.0],
[IE',26.8],
[Chrome',12.8],
[Safari',8.5],
[Opera',6.2],
[“其他”,0.7]
]
}]
//highchart提供的默认系列数据示例,如何覆盖该示例?
});
$(“.dataTbl>tbody>tr”)。每个(函数(索引){
如果(索引!=0){
var chartnumbervalue=parseInt($(this).find(“td:first”).next('td').text());
var charttextvalue=jQuery.trim($(this.find)(“td:first”).text());
//chart.series[0].data.push([charttextvalue,chartnumbervalue]);
//我想把数据推到系列中:数据:但是失败了。。。
}
});
});
我想出了一个解决方案,并将其放在JSFIDLE上:
因此,你必须了解的主要一点是,实际图表的系列“部分”是一个对象数组,可以采用几种不同的形式。您可以在此处阅读更多有关内容:
因此,我的方法与您在代码中描述的方法的最大区别在于,在实际创建图表之前,我已经为highcharts准备了数据
var piechartinfo = {
type: 'pie',
name: 'Custom Info',
data: []
}
我将数据数组留空,因为jquery循环将在之后填充它
//chart.series[0].data.push([charttextvalue, chartnumbervalue]);
piechartinfo.data.push([charttextvalue, chartnumbervalue]);
然后,在实例化实际图表时,我添加了piechartinfo对象
series: [piechartinfo]