我有点想解决如何使用eval()解决问题。基本上我需要在代码中使用一个字符串,但是引号的存在似乎使它变得糟透了,因此我的解决方法是评估我的原始变量...
$( "input" ).click(function( event ) {
layerClicked = event.target.value;
layerClicked = eval(layerClicked);
if (map.hasLayer(layerClicked)) {
map.removeLayer(layerClicked);
}
else{
map.addLayer(layerClicked);
} ;
});
这是对eval的合法使用和可接受的使用,还是我错过了更基本的东西?
提前致谢,
罗文
最佳答案
我假设您在单击输入时尝试访问全局变量值。一种替代方法是将您要访问的所有这些值放入对象中。这样,您可以使用方括号符号来访问它们,并且不需要eval。
var layers = {
a: 'a value',
b: 'b value',
c: 'c value'
};
$("input").click(function(event) {
var layerClicked = event.target.value;
alert(layers[layerClicked]);
});
字段:http://jsfiddle.net/rqo6tcy4/