2014-04-01 54 views
0

我试图将范围(1-2 =蓝色,2-3 =红色等)开始的图例列表的结构更改为平面单词列表(“blah”=蓝色,“偷看”=红色)。将范围列表转换为平面列表

我遇到的问题是我需要找出一种方法来保持数字系统到位,同时用文本替换该含义。此外,我需要的相应的颜色被旁边像这样的文字...

(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

您可以使用哈希阵列和直接查找的价值,没有功能:

var myData = []; 
myData["Pro-LEED"] = "#3e9936"; 

...然后...

'<i style="background:' + myData["Pro-LEED"] + '"></i> ' 
+0

我很新,所以请请原谅我的无知,但是不管怎么样,你会继续为传奇设定名单。 'to'和'from'部分在我身上丢失了 – user3407952