javascript - d3 : Append caption/title to table

标签 javascript html css d3.js

我使用 d3.js 生成了一个表。但是不知何故,我无法在表格中附加标题或说明。我尝试过追加 .append("text'),但它会位于表格下方。我最近的尝试是 .append('caption'),它也不起作用。 代码如下:

    ====================================================*/

// Get the data
data.forEach(function(d) {
  d.Timestamp = parseDate(d.Timestamp);
  d.Position = +d.Position;
  d.Agency = +d.Agency;
});

function tabulate(data, columns) {
  var table = d3.select(".grid_intent").append("table").append("caption").text("Table");
  thead = table.append("thead"),
    tbody = table.append("tbody");
  // append the header row
  thead.append("tr")
    .selectAll("th")
    .data(columns)
    .enter()
    .append("th")
    .text(function(column) {
      return column;
    });
  // create a row for each object in the data
  var rows = tbody.selectAll("tr").data(data)
    .enter()
    .append("tr");
  // create a cell in each row for each column
  var cells = rows.selectAll("td").data(function(row) {
      return columns.map(function(column) {
        return {
          column: column,
          value: row[column]
        };
      });
    })
    .enter()
    .append("td")
    .attr("style", "font-family: Courier")
    .attr("colspan", "2")
    .html(function(d) {
      return d.value;
    });
  return table;
}

// render the table
var Pos_All_Agen = tabulate(data, ["Agentur", "Position"])
//Sort Table Accoring to Position
Pos_All_Agen.selectAll("tbody tr")
  .sort(function(a, b) {
    return d3.ascending(a.Position, b.Position);
  });

最佳答案

您应该创建一个工作 fiddle ,以便我们可以正确测试,但在盲态中,尝试以下操作:

// Get the data
data.forEach(function(d) {
  d.Timestamp = parseDate(d.Timestamp);
  d.Position = +d.Position;
  d.Agency = +d.Agency;
});

function tabulate(data, columns) {
  var table = d3.select(".grid_intent");
  var caption = table.append("caption").text("Table");
  table.append("table");
  thead = table.append("thead"),
    tbody = table.append("tbody");
  // append the header row
  thead.append("tr")
    .selectAll("th")
    .data(columns)
    .enter()
    .append("th")
    .text(function(column) {
      return column;
    });
  // create a row for each object in the data
  var rows = tbody.selectAll("tr").data(data)
    .enter()
    .append("tr");
  // create a cell in each row for each column
  var cells = rows.selectAll("td").data(function(row) {
      return columns.map(function(column) {
        return {
          column: column,
          value: row[column]
        };
      });
    })
    .enter()
    .append("td")
    .attr("style", "font-family: Courier")
    .attr("colspan", "2")
    .html(function(d) {
      return d.value;
    });
  return table;
}

// render the table
var Pos_All_Agen = tabulate(data, ["Agentur", "Position"])
//Sort Table Accoring to Position
Pos_All_Agen.selectAll("tbody tr")
  .sort(function(a, b) {
    return d3.ascending(a.Position, b.Position);
  });

关于javascript - d3 : Append caption/title to table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47016065/

相关文章:

javascript - 在 JavaScript 中正确使用可选参数

python - 如何仅返回 HTML 片段中的文本?

jquery - 在大屏幕上查看时,Div 似乎从中心移开

html - Bootstrap 悬停和切换折叠菜单在 Rails 应用程序中不起作用

javascript - 无法交换模型集合属性?

javascript - Angularjs ng-show 不起作用

html - 如何制作 2 个柔性 block 和 1 个固定 block ?

css - 如何在列中分解 html 列表,并在列方向上遵循字母顺序?

javascript - 选择的默认样式

java - 在 WebView.replaceContent 中加载本地 CSS 文件