使用变量调用标记和更新选项将不起作用

using varialbles to call marker and update options wont work

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

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

这是为什么?我得到的错误是 Uncaught TypeError: clickedMarker.setOpacity is not a function

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


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);