javascript - 如何基于json数据显示多个动态highcharts

标签 javascript jquery html highcharts

我想使用json数据构建多个饼图。并将饼图放入类容器中,例如:

data.data[0].usedPercentage=0, 
data.data[1].usedPercentage=20,
data.data[2].usedPercentage=0,

输出饼图应显示为 0%, 20%, 0% , 但现在他们显示相同的全部为 0%,有人能提供一些线索吗?非常感谢

$.ajax({
                type: "GET",
                url: 'http://XXX.XXX.XXX.XX',
                dataType:'json',
                contentType:"application/json",
                success:function(data){
                  console.log(data);

                  var used =  new Array();
                  for (var i = 0; i < data.data.length; i++) {
                    used[i]=data.data[i].usedPercentage;
                    pieIndex(used[i]);
                    projectList +="<div class='container'>pie</div>"

                                function pieIndex(used){                            

                                  $(function () {
                                         // Using classes to select multiple containers
                                        var $containers = $(".container");
                                        // You just set the configuration object once
                                        var chartConfig = {
                                            chart: {
                                                plotBackgroundColor: null,
                                                plotBorderWidth: null,
                                                plotShadow: false,
                                                type: 'pie'
                                            },
                                            title: {
                                                text: ''
                                            },
                                            tooltip: {
                                                pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
                                            },
                                            plotOptions: {
                                                pie: {
                                                    allowPointSelect: true,
                                                    cursor: 'pointer',
                                                    dataLabels: {
                                                        enabled: false
                                                    },
                                                    showInLegend: true
                                                }
                                            },
                                            series: [{
                                                name: 'precentage',
                                                colorByPoint: true,
                                                data: [{
                                                    name: 'Unused',
                                                    y: 100-Number(used),
                                                    color: '#eeeeee',
                                                    sliced: true,
                                                    selected: true
                                                }, {
                                                    name: 'Used',
                                                    y: Number(used),
                                                    color: '#f34s12',
                                                    selected: true

                                                }]
                                            }]
                                        };

                                        $containers.each(function() {
                                          $(this).highcharts(chartConfig);
                                        });

                                    });
                                }



                },
                error:function(){
                        alert("connection error");
                }
        }); 





});

最佳答案

每个图表在容器上都需要一个唯一的 ID。看起来您正在用最后一个图表覆盖这些容器。尝试在每个容器 div 上使用不同的 id。例如:

projectList +="<div id='pie-chart-container-" + i + "' class='container'>pie</div>"

关于javascript - 如何基于json数据显示多个动态highcharts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44773028/

相关文章:

javascript - 代码未在 Javascript 模块类型脚本源内执行 [ES6]

javascript - 如何创建 JQueryTE 文本编辑器的动态实例

javascript - 将值从单独的 div 传递到 JavaScript 函数

javascript - 使用 jquery 获取动态创建的元素的内容

javascript - 显示一个隐藏的元素 jquery

javascript - 如何从 Chrome 扩展程序在 Windows 机器上打开另存为对话框?

javascript - 为什么在 isFinite() 之后检查 !isNaN()?

javascript - 一种查找数字序列以填充正方形网格的算法

javascript - 我尝试根据搜索输入过滤数组并选择菜单

javascript - 停止手动滚动——强制滚动到特定点