Javascript 如何在循环中使用highcharts制作多个图表?
这是我的相关代码:Javascript 如何在循环中使用highcharts制作多个图表?,javascript,php,html,highmaps,Javascript,Php,Html,Highmaps,这是我的相关代码: <script> titles = <?php echo json_encode($graphTitles)?>; //Loop through the graphs for (var graphNO = 0; graphNO < titles.length; graphNO++) {
<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>
头衔=;
//循环浏览图表
for(var graphNO=0;graphNO
我不想发布所有代码,只想把它弄得一团糟,我希望这段代码能做到:
graphNO的值为2,我认为它将循环两次(它会这样做),为每个循环创建一个容器(它会这样做),然后在它刚刚创建的容器中为每个循环绘制一个不同的图(但它只绘制第二个图)
我不知道出了什么问题,但是关于如何解决这个问题的任何想法,或者关于如何在一个循环中生成多个图的任何想法都会非常有帮助
此外,这是我创建的第一个网站,因此我已经一天多没有使用javascript、php或html了,如果这是真的很明显,那么很抱歉,我在这上面找不到任何东西。我得到了它,在尝试了一天网络上不起作用的复杂内容后,我最终想如果我这么做而不是这样删除该函数,会发生什么:
$(function ()
{
$(container).highcharts({
title: {
我只是:
$(container).highcharts({
title: {
我不知道为什么,可能是因为jquery是如何处理函数的,我不知道,直到一个小时前我甚至不知道我用的是jquery。但是如果有人想做类似的事情,它是有效的,并且可以告诉我为什么。我在世界各地尝试了一天复杂的东西后得到了它如果web不起作用,我最后想,如果我删除该功能,那么会发生什么,而不是:
$(function ()
{
$(container).highcharts({
title: {
我只是:
$(container).highcharts({
title: {
我不知道为什么,可能是因为jquery是如何处理函数的,我不知道,直到一个小时前我还不知道我使用的是jquery。但是如果有人想做类似的事情,它是有效的,请告诉我原因。Swikrit Khanal的答案是有效的,因为函数当你把它全部包装在函数中时,该函数将在构建下一个图形时覆盖它的自身,因此你只剩下最后一个图形 Bellow是一种在不删除函数的情况下使用循环并构建多个图形的方法,而是对其进行唯一命名
for(v=0; v < 5; v++){
var container = "#container"+v;
var func_name = "container"+v;
func_name = function () {
$(container).highcharts({
})
}
func_name()
}
(v=0;v<5;v++)的{
var container=“#container”+v;
var func_name=“容器”+v;
func_name=函数(){
$(容器).highcharts({
})
}
func_name()
}
Swikrit Khanal的答案确实有效,因为该函数不再被重写。当您将其全部包装在函数中时,该函数将在构建下一个图形时覆盖其自身,因此您将只剩下最后一个图形
Bellow是一种在不删除函数的情况下使用循环并构建多个图形的方法,而是对其进行唯一命名
for(v=0; v < 5; v++){
var container = "#container"+v;
var func_name = "container"+v;
func_name = function () {
$(container).highcharts({
})
}
func_name()
}
(v=0;v<5;v++)的{
var container=“#container”+v;
var func_name=“容器”+v;
func_name=函数(){
$(容器).highcharts({
})
}
func_name()
}
我遵循了这一点,我可以循环,但它只能打印最后一张图表,所以有没有打印所有图表的想法?嘿,Shi,你的问题是“函数名”正在覆盖自身。这是一个以highcharts JSFIDLE为基础的多个图的示例。我遵循了这一点,我可以循环,但它只能打印最后一张图表,有没有想法把所有的图表都打印出来?嘿,Shi,你的问题是“func_name”正在覆盖自己。下面是一个以highcharts JSFIDLE为基础的多个图表的示例。