所以这一个让我难住。我需要一个HTML
表格并生成一个线图,表示每月的条目数量。我目前有DataTables
为我创建表,并且源数据无法修改。我将使用Flot为我生成折线图。 Flot函数需要一个数据集,如下所示。将变量转换为数组数组
预期数据集:
[ [1, 3], [2, 14], [3, 3] ]
在DataTables
功能fnInitComplete我将需要生成从表中数据的上述数据集并把它传递给Flot
功能。这确保了图表与要求的表格一样动态。
这是我到目前为止有:(不完全数据表功能,但并不需要这个问题的其余部分)
$(document).ready(function() {
// The unimportant DT part
var sTable = $('#sTable').dataTable({ ... });
// What I currently have
var items=[]; // The wrapper for my dataset (array)
//Iterate all td's in eighth column
$('#sTable tbody tr td:nth-child(8)').each(function(){
//convert to jsDate from MySQL timestamp
var dateParts = $(this).text().split("-");
var jsDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2].substr(0,2));
var n = jsDate.getMonth();
//In my table I have March (represented as 2) five times so
//console.log(n); will print 2 five times.
});
});
这是据我不幸得到。我认为最好的办法是取n
的值,并将其作为变量的名称,所以我将变量定义为2,然后我可以执行类似2++
的操作。对于每个月以这种方式返回的数字,我将有一个以该数字命名的变量,它将包含它在.each函数中出现的次数。这也会将变量限制在只有几个月的地方,并且可以让我简单地创建需要传递的数据集。
我没有太多的经验与JavaScript的工作方式,所以任何帮助非常感谢。
向我们展示源数据(和结果数据) - 然后专注于编写一个独立的函数来转换一个到另一个。 –
不是你想要的,但可以在另一个名为[html5csv]的库中完成(https://github.com/DrPaulBrewer/html5csv)。请参阅http://jsfiddle.net/DrPaulBrewer/XaGUd/进行绘图和表演示 - 刮取表数据,用'#myTableID'之类的jQuery选择器替换'begin()'参数,然后它将抓取数据如图所示制作自己的数据。另外,您的表格将受益于标题行。 – Paul