Доступ к объекту Highcharts через id контейнера DIV

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Имеется простой способ получить доступ к графику Highcharts – использовать атрибут data-highcharts-chart контейнера, в котором сохраняется индекс графика из массива Highcharts.charts. Этот индекс позволит управлять графиком.

JS
Скопировать код
var chartIndex = document.getElementById('highcharts-container').dataset.highchartsChart;
var chart = Highcharts.charts[chartIndex];

chart.setTitle({ text: 'Статистика по новому видео с котятами' });
Кинга Идем в IT: пошаговый план для смены профессии

Продвинутые методы доступа к экземпляру графика

Вместе с упрощённым подходом есть более продвинутые методы доступа к графику Highcharts, которые улучшат удобство взаимодействия с ним, особенно в сложных приложениях.

Глобальные переменные: не, спасибо!

Мы уверены, что все согласятся, что стоит избегать использование глобальных переменных там, где это возможно. Для этого воспользуйтесь прямыми ссылками на графики:

JS
Скопировать код
let chart = $('#highcharts-container').highcharts();

Давайте создадим карту графиков

Если требуется управлять несколькими графиками – создайте карту графиков и обращайтесь к графикам по ID их контейнеров:

JS
Скопировать код
var highchartsMap = {};

highchartsMap['containerID'] = new Highcharts.Chart(options);

var chart = highchartsMap['containerID'];

Элегантный подход

Не хотите пользоваться ID? Тогда работайте через классы:

JS
Скопировать код
var chart = $(".highcharts-class-name").highcharts();

Это универсальный способ обращения к безымянным графикам под схожим названием класса.

Визуализация

Для более понятного представления рассмотрим следующую аналогию:

Markdown
Скопировать код
🔮: DOM-Контейнер (Как волшебная сфера)
🧰: График Highcharts (Ценность внутри сферы)

Чтобы получить доступ к сфере, сделайте:

JS
Скопировать код
let способДоступаКСфере = document.querySelector('.highcharts-container');

Внутри находится стоящая особого внимания "ценность":

JS
Скопировать код
let клад = способДоступаКСфере.highcharts();

Итого:

Markdown
Скопировать код
Ключ к Успеху: 🗝️ (Ключ) -> 🔮 (Сфера) -> 🧰 (График) -> 💎 (Данные)

Эффективное взаимодействие с графиками

Обращение ко множеству графиков

Если требуется обработать множество графиков, используйте функцию .each() из jQuery:

JS
Скопировать код
$('.highcharts-container').each(function() {
   var chart = $(this).highcharts();
});

Безопасный доступ к графику через класс

При доступе к графику через класс важно проверить его наличие:

JS
Скопировать код
var container = document.querySelector('.highcharts-class-name');
if (container && container.classList.contains('highcharts-initialized')) {
  var chart = container.highcharts();
}

Самодостаточность – гарантия успеха

Не зависите от глобальных переменных или массивов. Используйте data-атрибуты для сохранения экземпляра графика:

JS
Скопировать код
$('#highcharts-container').data('highchartsChart', new Highcharts.Chart(options));

var chart = $('#highcharts-container').data('highchartsChart');

Дополнительные советы

Видеть значит верить

Поищите примеры на JSFiddle или аналогичных платформах.

Настройка объекта графика

Воспользуйтесь API Highcharts для того, чтобы изменять конфигурацию графика.

Полезные материалы

  1. Highcharts Class: Chartофициальная документация Highcharts. Здесь вы найдёте информацию о Chart.
  2. Демонстрации и примеры | Highchartsинтерактивные примеры, демонстрирующие возможности Highcharts.
  3. Ваш первый график | Highchartsпошаговое руководство по внедрению Highcharts на страницу.
  4. javascript – Как создать GUID / UUID? – Stack Overflowобсуждение по созданию уникальных идентификаторов.
  5. Проблемы | highcharts/highcharts | GitHubстраница обсуждений Highcharts на GitHub.
  6. JSFiddle: пример — как работать с Highcharts через ID.