2014-12-19 80 views
1

我有一個變量保存在力向圖如何從d3.data()獲取對象?

var linkData = d3.selectAll(".link").data(); 

我所有的鏈接數據我有一個循環,通過這個循環的數據,看是否存在邊緣有一定的價值。 如果他們有,我希望將該邊緣的類更改爲可見,如果不是,則將其更改爲隱藏。

但我很困惑的事情是說,我得到了我想要的邊緣linkData[3];我該如何選擇實際的鏈接,以便我可以更改CSS類,看起來linkData是數據,我如何得到實際目的?

回答

2

您可以filter a selection

var myLink = d3.selectAll(".link") 
      .filter(function(d) { return d === linkData[3]; }) 
      .attr('stroke', 'red'); 

或者更好的是,作爲LeartS建議,可以直接過濾鏈接不通過.data()從DOM拂動:

var myLink = d3.selectAll(".link") 
      .filter(function(d) { return isThisTheLinkIWant(d); }) 
      .attr('stroke', 'red'); 
+1

他能使用'filter'函數直接搜索數據,但仍然對選擇進行操作,我會解釋,而不是顯示'd === linkData [3]'。即以前不需要確定linkData [3](或任何其他「有效」數據)。 – LeartS 2014-12-19 10:34:42

+0

歡呼的人:)並感謝@LeartS太:))排序 – rekoDolph 2014-12-19 11:13:38