2014-04-01 55 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