2013-11-21 54 views
0

自從幾天後,我正在使用d3。我選擇了collapse tree來顯示另一個項目的層結構。本例中的d3函數就是我的。只有我做了改變,我要求我的項目中的節點在樹中顯示它們,而不是使用flare.jsond3。根據陣列內容更改個別節點的顏色

所以我問的狀態(如果它的啓用或不)。請參閱下面的代碼。如果啓用了圖層,則該節點的圓應爲綠色。如果未啓用,該節點的圓應該是紅色的。狀態被賦予一個數組。

var statusarray = []; 
for (i = 0; i < operational.children.length; i++) { 

    //var status to save children enabled-status at [i] 
    var status = operational.children[i].get("enabled"); 

    //test output for operational.children at [i] 
    console.log(operational.children[i].id + " steht auf " + status) ; 

    //Create Array (statusarray) for status with length of operational children (saves true and false) 
    statusarray[i] = status; 
} 

陣列是建立這樣的:[true, true, true, false, true , false ....]

隨着數據我想操縱其適合的屬性的圈子。

編輯:

我在Java腳本的數據保存在此處:

var myjson = { 
        "name": main.id, 
        "children": [ 
         { 
          "name": glasspane.id, 
          "children": [ 
          ] 
         }, 
         { 
          // get id of operational layer 
          "name": operational.id, 
          "children": [ 
          ] 
         }, 
         { 
          "name": base.id, 
          "children": [ 
          ] 
         } 
        ] 
       }; 

我開始填充它:

for (i = 0 ; i < main.children.length; i++) { 
       // Array for children from root 
        var layer = main.children; 
       // Create childrn from Layers in Arrays and fill myjson with them 
        d_array.forEach(layer[i].children, function (ArrayElement) { 
         myjson.children[i].children.push({"name": ArrayElement.id}); 
        }, this); 
        } 

任何幫助表示讚賞!

回答

0

你甚至都不需要額外的數組,你可以簡單地做

nodeEnter.append("circle") 
    .attr("r", 1e-6) 
    .style("fill", function(d) { 
    return d.enabled ? "green" : "red"; 
}); 

編輯:如果你確實需要一個額外的陣列,可以使用到該索引交叉引用。

nodeEnter.append("circle") 
    .attr("r", 1e-6) 
    .style("fill", function(d, i) { 
    return statusarray[i] ? "green" : "red"; 
}); 
+0

呵呵?但腳本得到的信息比? – freeFoodFred

+0

我看到的問題。我使用一個var myson作爲treedata。沒有啓用的條目。我只能在另一個項目中獲得啓用狀態。 – freeFoodFred

+0

好吧,我將編輯答案,使用與節點具有相同排序的另一個數組。 –