渲染HighCharts类而不是ID?(Rendering HighCharts to class

2019-06-25 10:39发布

我有正常工作的情况如下:

$(document).ready(function() {

    get_data_for_chart();

    function get_data_for_chart() {
        $.ajax({
            url: 'get_data.aspx?rand=' + Math.random(),
            type: 'GET',
            dataType: 'json',
            error: function(xhr, status, error) {
                console.log(status);
                console.log(xhr.responseText);
            },
            success: function(results) { 
                var chart1;

                chart1 = new Highcharts.Chart( {
                    chart: {
                        renderTo: 'portlet_content_18',
                        defaultSeriesType: 'column'
                    }
                });

            }
        });
    }
});

当HTML看起来是这样的:

<div id="portlet_content_18">

用户可以动态地选择其中portlet他/她想要在屏幕上。 S /他也可以选择具有相同portlet在屏幕上一次以上比较的原因。

因此,如果HTML最终变为:

<div id="portlet_content_18">
<div id="portlet_content_18">

只有第一个div获取与图表填充,而第二个保持空白。 我怎样才能解决这个问题呢?

Answer 1:

是的你可以。 在这里看到的例子: http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/highcharts/chart/renderto-jquery/

基本上你分配一个jQuery的元素给一个变量:

renderTo: $('.myclass')[0]



Answer 2:

正如伊已经说 ,你不能有多个ID,但你可以有多个类。

我必须做到以下几点:

var $containers = $('.container'),
    chartConfig = {
        chart: {
            renderTo: null,
            defaultSeriesType: 'column'
        }
    };

$containers.each(function(i, e){
    chartConfig.chart.renderTo = e;
    new Highcharts.Chart(chartConfig);
});

此外,你真的没有给图表对象赋值给一个变量 - 至少我不想。

希望它可以帮助别人。



文章来源: Rendering HighCharts to class instead of id?