Javascript 无法使用jQuery数据表下载csv格式的表标题

Javascript 无法使用jQuery数据表下载csv格式的表标题,javascript,jquery,Javascript,Jquery,在这里,我必须从CSV格式导出表格数据,如果我单击“将表格数据导出到Excel”链接,则意味着我必须下载带有标题名称的表格数据。但对于我来说,标题名称未获得下载,只有表格数据正在下载,如果有人知道,请更新我的代码段。我从早上开始就试过了,但解决不了这个问题 $(文档).ready(函数(){ 函数exportTableToCSV($table,filename){ var$rows=$table.find('tr:has(td)'), //键盘不太可能键入的临时分隔符字符 //这是为了避免意外

在这里,我必须从CSV格式导出表格数据,如果我单击“将表格数据导出到Excel”链接,则意味着我必须下载带有标题名称的表格数据。但对于我来说,标题名称未获得下载,只有表格数据正在下载,如果有人知道,请更新我的代码段。我从早上开始就试过了,但解决不了这个问题

$(文档).ready(函数(){
函数exportTableToCSV($table,filename){
var$rows=$table.find('tr:has(td)'),
//键盘不太可能键入的临时分隔符字符
//这是为了避免意外地分割实际内容
tmpColDelim=String.fromCharCode(11),//垂直制表符
tmpRowDelim=String.fromCharCode(0),//空字符
//CSV格式的实际分隔符字符
colDelim=“,”,
rowDelim=“\r\n”,
//将表格中的文本抓取为CSV格式的字符串
csv=''''+$rows.map(函数(i,行){
变量$row=$(行),
$cols=$row.find('td');
返回$cols.map(函数(j,col){
变量$col=$(col),
text=$col.text();
返回文本。替换(/“/g,”);//转义双引号
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim)+'”;
//故意“假”,见下面的评论
if(false&&window.navigator.msSaveBlob){
var blob=新blob([decodeURIComponent(csv)]{
键入:“text/csv;字符集=utf8”
});
//IE 10、IE 11和Microsoft Edge中的崩溃
//参见MS Edge发行版#10396033
//因此,故意的“错误”
//这只是为了完整性
//删除“false”,风险自负
window.navigator.msSaveBlob(blob,文件名);
}else if(window.Blob&&window.URL){
//HTML5 Blob
var blob=新blob([csv]{
键入:“text/csv;字符集=utf-8”
});
var csvUrl=URL.createObjectURL(blob);
$(本)
艾特先生({
“下载”:文件名,
“href”:csvUrl
});
}否则{
//数据URI
var csvData='数据:应用程序/csv;字符集=utf-8',+编码组件(csv);
$(本)
艾特先生({
“下载”:文件名,
“href”:csvData,
“目标”:“空白”
});
}
}
//这必须是一个超链接
$(“.export”)。在('click',函数(事件){
//CSV
var args=[$('#dvData>table'),'export.csv'];
exportTableToCSV.apply(此参数为args);
//如果是CSV,则不执行event.preventDefault()或返回false
//我们实际上需要这是一个典型的超链接
});
});

渲染引擎
浏览器
月台
引擎版本
CSS等级
三叉戟
互联网
浏览器4.0
赢得95分+
4.
X
三叉戟
互联网
浏览器5.0
赢得95分+
5.
C
三叉戟
互联网
探索者5.5
赢得95分+
5.5
A.
三叉戟
互联网
探险家6
赢98+
6.
A.
三叉戟
Internet Explorer 7
赢XP SP2+
7.
A.

看起来您只是从
td
元素导出数据。但是您的头数据位于
th
元素中。

这应该可以做到,我们更改的内容是在函数开始时引用每个
tr
元素

var $rows = $table.find('tr')
$row.find('td,th');
也可以在循环内部捕获任何
td
th
元素

var $rows = $table.find('tr')
$row.find('td,th');
$(文档).ready(函数(){
函数exportTableToCSV($table,filename){
var$rows=$table.find('tr'),
//键盘不太可能键入的临时分隔符字符
//这是为了避免意外地分割实际内容
tmpColDelim=String.fromCharCode(11),//垂直制表符
tmpRowDelim=String.fromCharCode(0),//空字符
//CSV格式的实际分隔符字符
colDelim=“,”,
rowDelim=“\r\n”,
//将表格中的文本抓取为CSV格式的字符串
csv=''''+$rows.map(函数(i,行){
变量$row=$(行),
$cols=$row.find('td,th');
返回$cols.map(函数(j,col){
变量$col=$(col),
text=$col.text();
返回文本。替换(/“/g,”);//转义双引号
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim)+'”;
//故意“假”,见下面的评论
if(false&&window.navigator.msSaveBlob){
var blob=新blob([decodeURIComponent(csv)]{
键入:“text/csv;字符集=utf8”
});
//IE 10、IE 11和Microsoft Edge中的崩溃
//参见MS Edge发行版#10396033
//因此,故意的“错误”
//这只是为了完整性
//删除“false”,风险自负
window.navi