我想使用D3(請參見截圖)訪問下面的json對象中的vis元素,但無法這樣做。我可以使用類似於下面的代碼訪問鍵和值的元素,沒有任何問題:D3嘗試訪問json對象中的vis元素
console.log(d.key);
但是,這並不工作(我得到一個未定義的錯誤):
console.log(d.vis);
任何想法,我是什麼做錯了?謝謝!
json obj http://i42.tinypic.com/21cgtaa.png
下面是一些代碼片段:
var nested = d3.nest().key(function(d) { return d._id.stream; })
.entries(data.result);
var stream = main.selectAll(".stream")
.data(nested)
.enter().append("g")
.attr("class", "stream");
stream.append("rect")
.attr("height",10)
.attr("width", 25)
.attr("x",width-215)
.attr("y", function(d,i) { return height-400 + (i*40); })
.attr("stroke", function(d) { return color(d.key);})
.attr("fill",function(d) {
if(d.vis=="1") {
return color(d.key);
}
else {
return "white";
}
})
.on("click", function(d) {
console.log(d);
console.log(d.vis); // undefined
if(d.vis=="1") {
d.vis="0";
}
else{
d.vis="1";
}
});
聽起來像它應該工作。你可以發佈一些代碼來重現問題嗎? –
增加了一些代碼。我使用以下示例:http://mpf.vis.ywng.cloudbees.net/ – JamesE
沒有任何基礎數據的概念,「d」的屬性對任何試圖提供幫助的人都是完全不透明的。在您使用的數據中,「vis」可能完全不確定。 – cmonkey