2016-02-20 55 views
0

退出表我有下面的代碼,我想行添加到使用D3js現有的表,但不知何故,它不工作.Trying弄清楚,如果我錯過了一些東西。我第一拿表,然後採取所有的行,然後追加TD到it.Below是代碼,可以有人請指教,如果我在這裏錯過了一些東西。追加行中D3JS

tt=d3.select("#graph1").select("table").select("tbody").selectAll("tr");//Selects rows 
    tr=tt.data(data_to_display_status_table).enter().append("tr");//Append a new row to existing table 
td = tr .selectAll("td") 
       .data(function(d) { 
        console.log("***************************************************"); 
        console.log(d); 
        var json_struct={}; 
        json_struct["@timestamp"]=d.timestamp; 
        json_struct["flow_timestamp"]=d.timestamp; 
        json_struct["ip_a"]=d.ip_a; 
        json_struct["port_a"]=d.l4_port_a; 
        json_struct["ip_b"]=d.ip_b; 
        json_struct["service_name"]=d.service_name; 
        json_struct["appliance"]=d.appliance; 
        json_struct["port_b"]=d.l4_port_b; 
        json_struct["flow_id"]=d.flow_id; 
        json_struct["flow_duration"]=d.flow_duration; 
        json_struct["pkts"]=d.pkts; 
        json_struct["percentage_complete"]=d.percentage_complete; 
        var display_data_json=JSON.stringify(json_struct); 

        persistRetrival(display_data_json); 
        var str = d.timestamp + '<br>' + d.ip_a + "(" + d.l4_port_a + ")" + " - " + d.ip_b + "(" + d.l4_port_b + ")" + '<br>' + "Total Packets : " + d.pkts + '<br>' + "Flow Duration : " + d.flow_duration; 
        return [ str,d.percentage_complete+"%"]; }) 
       .enter().append("td") 
       .html(function(d) { return d + "<br/>"; }); 

tr.append("td").append("button") 
          .attr("class", "btn btn-warning") 
          .text("Cancel") 
          .on("click", function(d){ return cancelPcap(d); }); 

      tr.append("td").append("button") 
          .attr("xlink:href", "http://localhost:8080/pcap/file?file=File.pcap") 
          .text("Open") 
          .on("click", function(d){ return openPcap(d); }); 

回答

0

你正在做的:

tr .selectAll("td") 
       .data(function(d) { 

        //your function 
        }).enter() 

它應該是像下面

   tr .selectAll("td") 
       .data([1,2,3,4])//some array of objects or function returning an array. 
       .enter().append("td") 
       .html(function(d) { return d + "<br/>"; }); 

這裏是一個最低工作example可能是你可以用你的代碼和雜草進行比較的數組出了錯誤。

希望這會有所幫助!

+0

是d實際上是在我的情況下, TR = tt.data(data_to_display_status_table)。進入()對象數組附加( 「TR」); //追加一個新行現有的表 TD = TR。全選(「TD」) 。數據(函數(d){ 這裏data_to_display_status_table是對象的數組,你覺得別的事情也可能導致這個問題? –

+0

因爲我不知道你有數據,但我已經做了小小提琴來解釋你的數據應該如何,可能是你可以用這個最小的例子http://plnkr.co/edit/KEhSFzysgCeCrTGRg3y9?p=preview – Cyril

+0

比較:在你的情況下,它創建一個新表並添加條目,我認爲代碼工作完美。在這裏我有一個現有的表,我追加一個新行,因此不確定是不是我以正確的方式做這件事。 –