2013-03-14 48 views
0

是否有可能在selection.each()之後使用selection.attr()?我有以下簡單的代碼:d3.js在each()之後使用.attr()?

var line = d3.svg.line()...; 

chart 
    .selectAll('.gw') 
    .selectAll('path.line') 
    .each(function(d, i) { 
     $this.computeXXX(d, ....); 
    }) 
    .attr('d', line); 

我已經簽了「ATTR」函數被調用,但由於某種原因,當我回去試試檢查「路徑」元素組成的選擇,他們從來沒有設置'd'屬性。 '每個'電話的回報是什麼?我查看了d3 API文檔,並沒有提及有任何類型的返回值,但似乎確實存在。

關於如何解決這個問題的任何建議?

回答

1

您可以在.each()之後使用.attr()。我根據tributary的預製圖製作了very ugly example。無論如何,你可以看到它使用.each()繪製橙色筆畫,然後修改其他屬性。如果您發佈代碼的更多詳細信息,或者輸入fiddle或支流,我們可以幫助您解決問題。

+0

謝謝。你當然是對的。我的問題實際上是在其他地方,因爲我還不知道line()函數和每個元素的數據值是如何被使用的。一堆更多的實驗修復了這一切。肯定是我自己的錯! – 2013-03-19 16:45:26