Javascript 如何修改此方法以返回key=>;的数组;价值观
这就是正在工作的方法,它解析所有HTML表行,并将它们插入一个数组中,因此它将变成一个行数组,但只包含行值,不包含键:Javascript 如何修改此方法以返回key=>;的数组;价值观,javascript,jquery,Javascript,Jquery,这就是正在工作的方法,它解析所有HTML表行,并将它们插入一个数组中,因此它将变成一个行数组,但只包含行值,不包含键: function tableToJson(table){ var AoA = $(table+' > tbody > tr').map(function(){ return [ $('td',this).map(function(){ return $(this).text();
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()代码>
用于:
返回$(this.attr('name')=>$(this.text()代码>
但它不起作用
return [
$('td',this).map(function(){
return $(this).text();
}).get()
];
这将生成此格式['x','1']
您可以将其更改为创建结果对象,并且对于每个td
:
- 从
$(this.attr('name')
- 从
$(this.text()
- 使用
result[key]=value扩展结果对象
解决方案:
var result = {}
$('td',this).each(function(){
var key = $(this).attr('name');
var value = $(this).text();
result[key] = value;
}).get()
return result;
我想这就是你想要的:
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
参数。另外,您可能希望将数据类型设置为希望从服务器返回的数据类型。这是用于ajax的,我正在尝试解析表中的信息以将其发布到PHP,我不知道这是否是一种好方法,但这是我认为最好的方法,我如何在数据类型上设置它?如果您使用$.ajax({url:'url.php',data:tableToJson('#tableId'),dataType:'JSON',complete:function(results){/*在这里处理结果*/}})
或在函数
参数之后,如$.post('url.php',tabelToJson('#tableId'),函数(results){/*在完成时执行*/},'JSON')
。更改为$.get()
如果使用$\u GET
PHP服务器端。无法通过JSON以PHP格式key=>value发布它,对吗?您将JSON或序列化字符串作为数据
参数发送到服务器。当发送响应时,PHP会处理它,然后将响应传递到complete
函数的参数中。当然,该函数是异步执行,当XMLHttpRequestObject.status==200&&XMLHttpRequestObject.readyState==4
时。如果要读取JSON响应,在PHP执行后,需要echo JSON\u encode($assoc\u array\u此处)
。我不明白你的问题。希望这能有所帮助。我想用ajax将数组数组发布到PHP,但要使用关联数组,这样我就不必将ajax post数据格式化为PHP中的format key=>值。非常感谢你的帮助:)