Highmap开发:点击按钮如何获取选中点的name属性?
解决Highmap获取选中区域名称的问题
嘿,我来帮你搞定这个问题!你现在的代码能拿到选中点的数量,说明getSelectedPoints()已经正常工作了——它返回的是一个Point对象的数组,而不是单个Point实例,这就是你直接用selectedPoints.Point.name无效的原因。
正确的做法是遍历这个数组,访问每个Point对象的name属性
下面是修改后的完整代码,你可以直接用:
$('#calculate-scenario').on('click', function() { var chart = $('#ti_map_tp').highcharts(); var selectedPoints = chart.getSelectedPoints(); // 把所有选中区域的名称收集到数组里 var selectedAreaNames = selectedPoints.map(function(point) { return point.name; }); // 用alert展示结果,也可以换成控制台打印方便调试 alert('当前选中的区域:' + selectedAreaNames.join('、')); // 如果需要逐个处理选中的区域,也可以用forEach遍历 selectedPoints.forEach(function(point) { console.log('单个选中区域名称:', point.name); // 这里还能访问Point的其他属性,比如point.value等 }); });
为什么之前的写法不对?
selectedPoints是一个数组,它本身没有Point这个属性——数组里的每一项才是Highmaps的Point实例,所以你要么通过索引(比如selectedPoints[0].name)获取单个点的名称,要么用map/forEach遍历数组处理所有选中的点。
如果想查看Point对象的所有可用属性,也可以直接在控制台打印selectedPoints,就能看到里面包含的name、value等所有字段啦。
内容的提问来源于stack exchange,提问作者dexter
相关产品推荐
相关产品推荐

