Leaflet 使用变量来调用标记和更新选项是行不通的

Leaflet 使用变量来调用标记和更新选项是行不通的,leaflet,Leaflet,我必须通过调用分配给它们的变量来更改标记选项,但问题出在这里 var CL1 = L.marker([-36.597889, -80.15625], { divId: 1, opacity: 1, }) .addTo(map) var id = 1; // this do not work var clickedMarker = 'CL'+id; // this do not work clickedMarker.setOpacity(.5); // th

我必须通过调用分配给它们的变量来更改标记选项,但问题出在这里

var CL1 = L.marker([-36.597889, -80.15625], {
     divId: 1,
     opacity: 1,
   })
   .addTo(map)


var id = 1; // this do not work 
var clickedMarker = 'CL'+id; // this do not work 
clickedMarker.setOpacity(.5); // this do not work 
但这一个有效

CL1.setOpacity(.5); //working

为什么呢?我得到的错误是未捕获类型错误:clickedMarker.setOpacity不是一个函数

您正在使用
var clickedMarker='CL'+id创建一个字符串
这样,您将无法访问变量
CL1
。可以使用列表将变量名映射到变量self


var mapping = {};

var CL1 = L.marker([-36.597889, -80.15625], {
     divId: 1,
     opacity: 1,
   })
   .addTo(map)
mapping['CL1'] = CL1;

var id = 1;
var clickedMarkerId = 'CL'+id;
var clickedMarker = mapping[clickedMarkerId]; // get the marker variable over the String 'CL1'
clickedMarker.setOpacity(.5);

谢谢对我有用的解释。