Jquery 无法使用serializeArray()和array.push()将数据追加到字符串
在回答以下问题后,如,我尝试使用以下命令将数据附加到字符串:Jquery 无法使用serializeArray()和array.push()将数据追加到字符串,jquery,arrays,string,serialization,Jquery,Arrays,String,Serialization,在回答以下问题后,如,我尝试使用以下命令将数据附加到字符串: <input type='checkbox' name='a' />A <input type='checkbox' name='b' checked='checked'/>B <input type='checkbox' name='c' />C var attr_str = $('input').serializeArray(); attr_str.push({q:'hello',p:'wor
<input type='checkbox' name='a' />A
<input type='checkbox' name='b' checked='checked'/>B
<input type='checkbox' name='c' />C
var attr_str = $('input').serializeArray();
attr_str.push({q:'hello',p:'world'});
A
B
C
var attr_str=$('input').serializeArray();
attr_str.push({q:'hello',p:'world'});
但是它返回[object object],[object object]
。我错过了什么
序列化数组返回一个对象数组,每个对象都包含属性<代码>名称和<代码>值 前 这就是为什么它正在打印
[对象,对象]
如果需要,可以使用JSON.stringify(attr\u str)
打印stringify值。但是JSON.stringify
在旧浏览器中不受本机支持,因此您可能需要包括一个兼容性库,如
演示:。我不确定您想要完成什么,但只有选中的输入才会被
serializeArray()
包含。你可以阅读更多关于它的内容
但是您的数组将作为对象返回,这是它应该返回的。要查看此对象的JSON布局,可以尝试JSON.stringify(attr\u str)
var attr_str=$('input').serializeArray();
attr_str.push({q:'hello',p:'world'});
$('body').append('
string='+JSON.stringify(attr_str));
这将表明您正在将对象追加到attr\u str
数组中,但只包含输入“b”,因为它是唯一被选中的string=[{“name”:“b”,“value”:“on”}{“q”:“hello”,“p”:“world”}]
要访问此对象,只需使用attr\u str[0]
,然后使用attr\u str[0].name作为该对象的属性。它将打印b
[{"name": "x", "value": "y"}, {"name": "a", "value": "b"}, ...]
var attr_str = $('input').serializeArray();
attr_str.push({q:'hello',p:'world'});
$('body').append('<br><br>string='+JSON.stringify(attr_str));