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));