如何在初始化后获取所有ECharts实例?无需知晓ID的实现方法
如何在不知晓实例ID的情况下获取所有ECharts实例?
方法:通过遍历DOM容器批量获取实例
ECharts初始化后会给对应容器DOM元素添加专属标识属性,可借助这一点获取所有实例:
- 筛选页面中所有带有ECharts标识属性的DOM元素(旧版本为
_echarts_instance_,新版本为data-echarts-instance) - 对每个符合条件的DOM元素,调用ECharts全局方法
echarts.getInstanceByDom()获取对应实例
代码示例
// 筛选所有ECharts容器元素 const echartsContainers = document.querySelectorAll('[data-echarts-instance], [_echarts_instance_]'); // 转换为数组并获取对应实例,过滤无效结果 const allEChartsInstances = Array.from(echartsContainers) .map(container => echarts.getInstanceByDom(container)) .filter(instance => instance !== null); // 输出所有实例 console.log(allEChartsInstances);
补充说明
- 该方法无需提前保存实例引用,适用于无法修改初始化代码的场景(比如第三方页面)
- 如果是自有项目,也可以在初始化实例时手动将实例存入全局数组,能更高效地直接获取实例集合
内容的提问来源于stack exchange,提问作者Olejon
相关产品推荐
相关产品推荐

