When I render a highcharts-chart to a div container, how can I get access to the chart object through the div-Container?

I don't want to make the chart variable global.

        var chart = new Highcharts.Chart({
            chart: {
                renderTo: "testDivId",
                                ...

我想像下面这样访问上面上下文之外的图表(伪代码),以调用函数:

var chart = Highcharts.Chart("testDivId"); //access from id
chart.redraw();

推荐答案

Highcharts 3.0.1

Users can use the highcharts plugin

var chart=$("#container").highcharts();

海图2.3.4

Highcharts.charts数组中读取,对于2.3.4及更高版本,可以从<div>上的数据中找到图表的索引

 var index=$("#container").data('highchartsChart');
 var chart=Highcharts.charts[index];

All versions

按容器ID跟踪全局对象/ map 中的图表

var window.charts={}; 
function foo(){
  new Highcharts.Chart({...},function(chart){  
      window.charts[chart.options.chart.renderTo] = chart;
  });
}

function bar(){
  var chart=window.charts["containerId"];
}

Read Mode @ Highcharts Tips - Accessing Chart Object From a Container ID

附笔.

Some additions were made in the newer versions of Highcharts since writing this answer and have been taken from answers from @davertron, @Moes and @Przy, please upvote their comments/answers as they deserve the credit for these. Adding them here as this accepted answer would be incomplete without these

Jquery相关问答推荐

JQuery AJAX数据表保留前导零

将元素附加到每个函数 jQuery

jQuery 与 javascript?

使用 JSONP 时如何捕获 jQuery $.getJSON(或数据类型设置为jsonp的 $.ajax)错误?

使用 jQuery Validate 确认密码

调整浏览器大小时调整jqGrid的大小?

JQuery .hasClass 用于 if 语句中的多个值

是否可以在 beforeunload 弹出窗口中显示自定义消息?

我想了解 jQuery 插件语法

捕获在页面任意位置按下的 Enter 键

Rails 5:如何将 $(document).ready() 与 turbo-links 一起使用

所有但不是jQuery Select 器

类方法中的Typescript this

JQuery - 按值查找单选按钮

jQuery从字符串中删除'-'字符

jQuery确定匹配的类是否具有给定的ID

如何确定滚动高度?

如何使用新的 JSON 数据手动更新数据表

jQuery中的wait()或sleep()函数?

jQuery:通过 .attr() 添加两个属性;方法