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