2013-05-02 47 views
0

我在解決此問題時遇到了一些問題。我有一個現有的HTML表,並希望使用d3將一些數據附加到表中。d3將單元格添加到現有表

這裏的HTML表:

<table> 
    <thead> 
    <tr id="table_header"> 
     <th>Header 1</th> 
     <th>Header 2</th> 
     <th>Header 3</th> 
     <th>Header 4</th> 
     <th>Header 5</th> 
     <th>Header 6</th> 
    </tr> 
    </thead> 
    <tbody id="data_table"> 
    </tbody> 
    </table> 

現在我只是想一些額外的頭追加到此,所以我使用D3

<script> 
    d3.json("data.php", function(monthly_growth) { 

    d3.select("#table_header").selectAll("th").data(monthly_growth).enter().append("th").text(function(d) {return d.MONTH;}); 

    }); 
</script> 

我希望這不是太難理解不有實際的數據可用。基本上我的數據集在接下來的幾年裏每個月都有數值。我想爲數據集中的每個月創建一個新標題。目前我上面的代碼是將標題附加到我的原始表中,但它缺少數據集的前6個月。我懷疑我的d3代碼開始在第一個Header上添加數據,這不是我想要的。

我也嘗試給我的第6個標題的ID和追加到,但它並沒有很好的工作。它似乎在它下面開始了一排新的標題。除此之外,我覺得這不是正確的做法。

+0

這看起來幾乎完全一樣[這個問題](http://stackoverflow.com/questions/16316480/manually-add-an-element-to-a-selection-in-d3/)。 – 2013-05-02 16:20:33

+0

是的,這就是它!謝謝,我得到它的工作。我仍然試圖理解爲什麼將函數(d)添加到我的.data函數有助於索引。 – MSJ 2013-05-02 16:37:30

+0

除了選擇所有th元素之外,我發現了一個更好的方法來完成此操作。所以我創建了一個類到我想創建的新東西。所以我的新代碼是'code'd3.select(#table_header).selectAll(th.month).data(monthly_growth).enter()。append(「」th).attr('class','month') .text(function(d){return d.MONTH;}); – MSJ 2013-05-02 18:32:46

回答

0

不希望這使得d追加新的類型,而不是「想」創建一個新類我要選擇已經存在。:

<script> 
    d3.json("data.php", function(monthly_growth) { 

    d3.select("#table_header").selectAll("th.month").data(monthly_growth).enter().append("th").attr('class', 'month').text(function(d) {return d.MONTH;}); 

    }); 
</script>