Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:如何使用自定义头值获取表的JSON数据_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:如何使用自定义头值获取表的JSON数据

Javascript jQuery:如何使用自定义头值获取表的JSON数据,javascript,jquery,Javascript,Jquery,jQuery:如何使用自定义头值获取表数据的JSON数据。有一个表,需要将整个表数据转换为json格式的数据。现在,我试图替换json数据中的头数组(自定义头),而不是实际的表头。我试图用$headers=[“ID”、“ABC”、“XYZ”、“Test”]替换原始表头 我尝试了以下代码 预期产出: [{"ID":"22222","ABC":"test5","XYZ":"3000"

jQuery:如何使用自定义头值获取表数据的JSON数据。有一个表,需要将整个表数据转换为json格式的数据。现在,我试图替换json数据中的头数组(自定义头),而不是实际的表头。我试图用
$headers=[“ID”、“ABC”、“XYZ”、“Test”]替换原始表头
我尝试了以下代码

预期产出:

[{"ID":"22222","ABC":"test5","XYZ":"3000","":"abc"},{"ID":"3333","ABC":"test1","XYZ":"1000","":"erf"},{"ID":"44444","ABC":"test2","XYZ":"2000","":"sde"},{"ID":"55555","ABC":"test3","XYZ":"3000","":"fre"}]

$(文档).ready(函数(){
$(“#getJsondata”)。单击(函数(){
var jsonData1=[];
var matchId=1234;
var$headers=$(“#firstTable”).find(“th:eq(0)、th:eq(1)、th:eq(2)”;
//var$headers=[“ID”、“ABC”、“XYZ”、“Test”];
var$rows=$(“#firstTable”).find(“tbody tr”)
.每个(功能(索引){
const$cells=$(this).closest(“tr”).find(“td:eq(0)、td:eq(1)、td:eq(2)、td:eq(3)”;
jsonData1[index]={};
$cells.each(函数(cellIndex){
jsonData1[index][$($headers[cellIndex]).text()]=$(this.text();
});
});
警报(JSON.stringify(jsonData1));
});
});
td{
边框:1px纯黑;
}

校长1
校长2
校长3
校长4
校长5
校长6
22222
测试5
3000
abc
22222
Y
3333
测试1
1000
erf
22222
Y
44444
测试2
2000
sde
22222
Y
55555
测试3
3000
弗雷
22222
Y
GetJsonData

这似乎是你想要的

const headers=[“ID”、“ABC”、“XYZ”、“Test”];
$(函数(){
$(“#getJsondata”)。在(“单击”,函数(){
常量数据=[];
$(“#firstTable”).find(“tbody tr”).each(function(){
data.push({})
$(this.find(“td”).map(函数(i){
返回此.textContent;
}).get()//获取所有单元格内容的数组
.slice(0,-2)//去掉最后两个
.forEach((text,i)=>data[data.length-1][headers[i]]=text)//添加到对象
})
log(JSON.stringify(data));
});
});
td{
边框:1px纯黑;
}

校长1
校长2
校长3
校长4
校长5
校长6
22222
测试5
3000
abc
22222
Y
3333
测试1
1000
erf
22222
Y
44444
测试2
2000
sde
22222
Y
55555
测试3
3000
弗雷
22222
Y
GetJsonData

您可以获取
td
索引,并根据该索引获取
$headers
值,并将其推送到JSON数组中。我已经使用了
:lt
(小于此值),因为如果您需要所有tds值,则只有4个头值可以删除

演示代码
$(文档).ready(函数(){
$(“#getJsondata”)。单击(函数(){
var jsonData1=[];
var$headers=[“ID”、“ABC”、“XYZ”、“Test”];
$(“#firstTable”).find(“tbody tr”).each(函数(索引){
var值={};//创建对象
//仅通过tr>td<4的环路
$(this).find(“td:lt(4)”).each(函数(索引){
值[$headers[index]]=$(this.text();//添加值
})
jsonData1.push(值)//推入数组
});
警报(JSON.stringify(jsonData1));
});
});
td{
边框:1px纯黑;
}

校长1
校长2
校长3
校长4
校长5
校长6
22222
测试5
3000
abc
22222
Y
3333
测试1
1000
erf
22222
Y
44444
测试2
2000
sde
22222
Y
55555
测试3
3000
弗雷
22222
Y
GetJsonData

离我很近我当时没有看到你的答案。我的回答很好:)