这是有效的方法,它解析所有 HTML 表格行,并将它们插入数组中,因此它变成了一个行数组,但只有行值,没有键:
function tableToJson(table){
var AoA = $(table+' > tbody > tr').map(function(){
return [
$('td',this).map(function(){
return $(this).text();
}).get()
];
}).get();
return JSON.stringify(AoA);
}
输出:
[
['x','1'],
['y','2'],
['z','3']
]
我可以更改什么以使其返回字典数组(带有键和值)?
如:
[
{'address': 'x','number': '1'},
{'address': 'y','number': '2'},
{'address': 'z','number': '3'}
]
我尝试替换以下行:return $(this).text();
For:return $(this).attr ('name') => $(this).text();
但是没有成功。
最佳答案
我想这就是您要找的:
function tableToJson(table){
var r = [];
$(table+' > tbody > tr').each(function(){
var e = $(this);
r.push({address:e.attr('name'), number:e.text()});
});
return r;
}
当然,上面创建了一个对象数组。您可以看到它们的名称和值,例如:
var tblRws = tableToJson('#tableId');
$.each(tblRws, function(i, v){
console.log('Row:'+i+'; Address:'+v.address+'; Number:'+v.number+';');
});
我不确定您为什么要 JSON.strigify()
结果。如果它用于 AJAX,您可以只使用对象作为 data
参数。此外,您可能希望将 dataType
设置为您希望从服务器返回的 data
类型。
关于javascript - 如何修改此方法以返回具有键 => 值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392857/