我在页面上有多个图表,需要访问其中一个图表。
按标题查找图表的最简单方法是什么?在Highcharts中是否有任何内置帮助器,或者我必须使用以下内容编写自己的查找:
if( parseInt(window.localStorage.getItem("curLevel")) < this.levelNo )
答案 0 :(得分:2)
function getChartByTitle(titleString) {
var allCharts = Highcharts.charts;
return allCharts.find(function(chart) {
return chart.options && chart.options.title === titleString;
});
}
注意:并非所有浏览器都支持Array.prototype.find()(如果使用它,请检查兼容性)。
目前支持的解决方案是使用Array.prototype.filter():
function getChartByTitle(titleString) {
var allCharts = Highcharts.charts;
var result = allCharts.filter(function(chart) {
return chart.options && chart.options.title === titleString;
});
return result.length > 0 ? result[0] : undefined;
}
答案 1 :(得分:2)
由于我有lodash
可用,如果没人建议为Highcharts内置任何内容,我最终会使用它:
function getChartByTitle(titleString) {
var allCharts = Highcharts.charts,
searchTarget = {options: {title: {text: titleString}}};
return _.find(allCharts, searchTarget);
};