我有下面的代码在那里它增加了项目JSON字符串,为什么jquery .push()在这种情况下不起作用?
function addOrder(req, orderId, orderSource, transactiondtm) {
alert(orderId);
req.Request.orderslist.push({ ordid: orderId,
ordsource: orderSource,
tranndtm: transactiondtm });
}
function getDisplayPts(){
var req = {
"Request": {
"-xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
"number": Num,
"orderslist": {
"ordid": [],
"ordsource": [],
"tranndtm": []
}
}
};
$('#msListingProducts ul.msRows li input').each(function(index) {
addOrder(req,$('#hfOrderId'+index).val(),$('#hfOrderSource'+index).val(),$('#hfOrdTranDate'+index).val());
});
var str = JSON.stringify(req);
alert(str);
}
我得到req.Request.orderslist.push()
不是一个函数。任何建议。对于一些行的订单ID即将为未定义是不是因为那?
编辑: 我需要的JSON格式是,
{
"Request": {
"-xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
"memNum": "70000211981",
"orderslist": [
{
"ordid": "511",
"ordsource": "ONLINE",
"transactiondttm": "2014-01-09"
},
{
"ordid": "512",
"ordersource": "STORE",
"tranndttm": "2014-01-09"
}
]
}
}
您试图访问对象元素作为数组,因此它给出了一个错误。这里'req.Request.orderslist'是一个对象,.push()方法是将数据推入数组,因此它给出了一个错误。为了解决这个问题,'req.Request.orderslist'是一个数组,然后在其中推入记录。 –
@SohilDesai你能解释一下吗? – coderman
检查我的答案。 –