我正在创建一份图书发票,并希望通过ajax提交。我试图对发票中的图书数组进行json编码,但是始终得到空白值。
//create item list
var order_items = [];
$('#mi_books tbody tr.userbooks').each(function(index)
{
var bookisbn = $(this).find('td .mi_isbn').text();
var bookdata = [];
bookdata['isbn'] = bookisbn;
bookdata['title'] = $(this).find('.mi_title').text();
bookdata['qty'] = $(this).find('.mi_qty').text();
bookdata['price'] = $(this).find('.mi_price').text();
order_items.push(bookdata);
});
alert(JSON.stringify(order_items));
alert(order_items.toString());
console.log(order_items);
alert(JSON.stringify(order_items));
输出:[[]]
alert(order_items.toString());
输出:空白
console.log(order_items);
输出:
Array[1]
0: Array[0]
isbn: "9781401216672"
length: 0
price: "1007"
qty: "1"
title: "Batman: The Killing Joke"
__proto__: Array[0]
length: 1
__proto__: Array[0]
我的数组已经被创建了,但是我无法将其编码为json?我做错了什么吗?
bookdata.isbn = ...
进行赋值,而不是使用方括号和字符串(根据 ES5 规范的定义,这两种方式是相同的)。 - user1046334{}
与填充它结合起来,就像他展示的那样(我也会这样做,作为第二步;我已经修复了即时错误)。 - user1046334[]
。变量将保存你放入其中的内容,空数组[]
,空对象{}
或其他任何内容。 - user1046334