2015-06-30 31 views
2

對於以下d3代碼:得到元素的顏色D3

var previousElement = d3.select(this); 
console.log(previousElement.attr("style")); 

的結果是這樣的:

fill: red; 

fill: rgb(152, 223, 138); 

然後,我怎麼能得到確切的顏色這個元素,以便我可以做一個這樣的判斷:

if (elementColor == 'red') 

if (elementColor == 'rgb(152, 223, 138)') 

我試過var elementColor = previousElement.attr("style").fill,它返回null

+0

你有沒有看顏色文檔D3,https://開頭github上。 COM/mbostock/D3 /維基/顏色? –

+0

如果你對這個詞充滿信心,那麼只需檢查elementColor =「fill:red」 –

+0

只要好奇,有什麼理由要投票呢? – byteBiter

回答

4

您可以使用d3.rgb()解析任何被指定爲樣式,然後比較R,G,B分量:

var colour = d3.rgb(previousElement.attr("style")); 
if(colour.r == 255 && colour.g == 0 && colour.b == 0) { 
    // ... 
}