คำตอบของ@eloถูกต้องและได้รับการโหวตแม้ว่าฉันจะต้องจัดระเบียบเล็กน้อยเพื่อให้ชัดเจนขึ้น:
const myChartEl = document.getElementById('the-id-name');
const myChart = Highcharts.charts[myChartEl.getAttribute('data-highcharts-chart')];
myChart
จากนั้นจะกลายเป็นวัตถุHighchartsสดที่แสดงอุปกรณ์ประกอบฉากปัจจุบันทั้งหมดที่มีอยู่ในแผนภูมิที่แสดงผลในไฟล์myChartEl
. เนื่องจากmyChart
เป็นวัตถุHighchartsจึงสามารถโยงวิธีการต้นแบบต่อจากนั้นขยายหรืออ้างถึงได้
myChart.getTable();
myChart.downloadXLS();
setTimeout(() => Highcharts.fireEvent(myChart, "redraw"), 10);
นอกจากนี้ยังสามารถmyChart
ผ่าน.highcharts()
ซึ่งเป็นjQuery
ปลั๊กอิน:
var myChart = $("#the-id-name").highcharts();
jQuery
ปลั๊กอินวิธีการดังกล่าวข้างต้นต้องjQuery
ที่จะโหลดก่อนปลั๊กอินที่มีการใช้และแน่นอนปลั๊กอินตัวเอง การไม่มีปลั๊กอินนี้ทำให้ฉันมองหาวิธีอื่นในการทำเช่นเดียวกันกับ JavaScript วานิลลาบริสุทธิ์
ด้วยการใช้วิธี JS ที่บริสุทธิ์ฉันสามารถทำสิ่งที่ต้องการ (ข้อมูลโค้ดที่สอง) โดยไม่ต้องพึ่งพาjQuery
: