我正在尝试将一个以范围(1-2 =蓝色,2-3 =红色等)开头的Legend列表的结构更改为一个单词的平面列表(" blah&#34 ; =蓝色,"偷看" =红色)。
我遇到的问题是我需要找到一种方法来保持数字系统的位置,同时用文本替换该含义。而且,我需要相应的颜色在文本旁边,如此......
(color)text<br>
(color)text<br>
(color)text
设置的是(这决定了颜色)
function getColor(d) {
return d === 5 ? '#3e9936' :
d === 4 ? '#9dcc00' :
d === 3 ? '#f7ef00' :
d === 2 ? '#ed5d13' :
d === 1 ? '#ba212a' :
'#a1a1a1';
}
这是将在地图上显示并确定结构的内容
legend.onAdd = function (map) {
var div = L.DomUtil.create('div', 'info legend'),
grades = [1,2, 3, 4, 5],
labels = ["Pro-LEED","LEED-equivalent","No State-level","Anti-LEED","Anti-LEED Pending"],
from, to;
for (var i = "Pro-LEED"; i === labels.length; i++) {
from = labels[i];
to = labels[i];
grades.push(
'<i style="background:' + getColor(to + '"Pro-LEED"') + '"></i> ' +
(/*only to check*/to ? to : 'br') +
((/*both to and from check*/from)?'':'') +
(/*only from check*/from ? from : '+'));
}
div.innerHTML = labels.join('<br>');
return div;
};
现在我得到的只是一个文本列表而不是每个单词旁边的颜色。
帮助!
答案 0 :(得分:0)
您可以使用哈希数组并直接查找值,而无需使用函数:
var myData = [];
myData["Pro-LEED"] = "#3e9936";
...则...
'<i style="background:' + myData["Pro-LEED"] + '"></i> '