如何在循环中使用高图表制作多个图表


How to make multiple charts using highcharts in a loop?

这是我拥有的相关代码:

        <script>
            titles = <?php echo json_encode($graphTitles)?>;
            //Loop through the graphs
            for (var graphNO = 0; graphNO < titles.length; graphNO++)
            {                               
               //CREATE NEW CONTAINER
                var container = document.createElement('div'); 
                document.body.appendChild(container);er);
                dates = <?php echo json_encode($recivedDates);?>[titles[graphNO]];
                //I EXTRACT A FEW  MORE ARRAYS THE SAME METHOD
              $(function () 
                {
                  $(container).highcharts({
                      title: {
                          text: titles[graphNO]
                      },
                      xAxis: {
                          categories: dates
                      },
                      series: [{
                          type: 'column',
                          color: 'gold',
                          name: 'Created Issues',
                          data: createdIssues.map(Number)
                      }, 
                       //MORE COLUMN'S AND SOME SPLINES. IT ALL WORKS AS EXPECTED
                  });
                });
            }
        </script>

我不想发布所有代码并让它变得混乱,我希望这段代码能做的是:

graphNO 的值为 2,我认为它会循环两次(它确实如此),为每个循环创建一个容器(它确实如此),然后在它刚刚制作的容器中为它执行的每个循环绘制不同的图(但它只是绘制第二个图)。

我不知道出了什么问题,但是关于如何解决这个问题的任何想法,或者关于如何在循环中制作多个图形的任何想法都会有很大帮助。

另外,这是我制作的第一个网站,所以我已经一天没有使用 javascript、php 或 html 了,所以很抱歉,如果它真的很明显,但我找不到任何关于这个的东西。

我明白了,经过一天从网络上尝试了不起作用的复杂东西,我最终想到如果我删除该功能会发生什么,而不是:

             $(function () 
            {
              $(container).highcharts({
                  title: {

我只有:

              $(container).highcharts({
                  title: {

这一切都非常完美。我不知道为什么,可能是因为jquery如何处理函数,我不知道,直到一个小时前我才知道我使用的是什么jquery。但是,如果有人想做类似的事情,它就会起作用,它就会起作用,并随时告诉我为什么。

Swikrit Khanal的答案确实有效,因为该函数不再被覆盖。当您将其全部包装在函数中时,该函数将在构建下一个图形时覆盖其自身,因此您将只剩下最后一个图形。

波纹管是一种使用循环并构建多个图形而不删除函数的方法,而是唯一地命名它。

for(v=0; v < 5; v++){
 var container = "#container"+v;
 var func_name = "container"+v;
 func_name = function () {
   $(container).highcharts({
   })
 }
func_name()
}