在 D3.js 的帮助下集成 Datatables 插件

Integrate Datatables plugin with the help of D3.js

我已经研究了好几个小时了 - 我无法弄清楚我的代码中 wrong.I 的哪一部分在我 运行 我的代码,但我希望能够像这样制作我的 table - http://www.codeproject.com/Articles/194916/Enhancing-HTML-tables-using-a-JQuery-DataTables-pl#Introduction

所以我尝试使用 Datatable jquery 插件。到目前为止没有运气。拜托,非常感谢你的帮助。

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
 <script type="text/javascript" language="javascript" src="https://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript" language="javascript" src="http://cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf8" src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://d3js.org/d3.v2.js"></script>


<style>
    table {
        border-collapse: collapse;
        border: 2px black solid;
        font: 12px sans-serif;
    }

    td {
        border: 1px black solid;
        padding: 5px;
    }
</style>
</head>
<body>



 <div id="container"></div>

  <script type="text/javascript"charset="utf-8">



  d3.text("file.csv", function (datasetText) {

  var rows = d3.csv.parseRows(datasetText);

  var tbl = d3.select("#container")
    .append("table")
    .attr("id","tableID");


// headers
  tbl.append("thead").append("tr")
    .selectAll("th")
    .data(rows[0])
    .enter().append("th")
    .text(function(d) {
        return d;
    });

   // data
    tbl.append("tbody")
    .selectAll("tr").data(rows.slice(1))
    .enter().append("tr")

    .selectAll("td")
    .data(function(d){return d;})
    .enter().append("td")
    .text(function(d){return d;})



   });

     $(document).ready(function() {
         $('#tableID').dataTable();
     } );


</script>
 </body>
 <html>
  1. 查看浏览器控制台是否有任何错误,如果您无法自行解释,请在此处提及。它说 dataTables 函数未知,这是由于您包含两个不同的 jquery 版本所致。我猜 jquery 的第二个包含用定义的 dataTables 插件替换了初始命名空间。
  2. 不应在 CSV 回调函数之外调用 dataTables 插件。如果加载 csv 和执行回调花费的时间太长,则 $('#tableID').dataTable(); 在 DOM 出现之前被调用。将其移动到回调中。
$(document).ready(function() {
    d3.text("file.csv", function (datasetText) {
        // draw d3 elements
        $('#tableID').dataTable();
    });
});