sessionStorage 将所有内容存储在同一个数组中
sessionStorage is storing everything inside the same array
我有这段JS:
$('.go-to-bag').click(function () {
var productId = $(this).parent().attr('id');
var productName = $(this).parent().attr('product-name');
var productQty = $(this).prev().val();
var productLWeight = $(this).parent().attr('product-weight');
var productPrice = $(this).parent().attr('product-price');
var newList = new Object();
if(sessionStorage.newShoppingList)
{
newShoppingList = JSON.parse(sessionStorage.getItem('newShoppingList'));
} else {
newShoppingList = []
}
newShoppingList.push(productId, productName, productQty, productPrice, productLWeight);
sessionStorage.setItem('newShoppingList', JSON.stringify(newShoppingList));
var retrievedObject = sessionStorage.getItem('newShoppingList');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
});
它应该向 sessionStorage 中的对象添加项目,如下所示:
相反,它给出了这个:
它工作得很好,但知道它不起作用。
唯一的区别是我的同事在主文件的 php 中实现了语言功能。
有人有什么建议吗?
您正在调用函数 Array.prototype.push
传递 5 个参数,这些参数将单独插入到该数组中。
Array.prototype.push
你需要用大括号括起来
v
newShoppingList.push({
productId,
productName,
productQty,
productPrice,
productLWeight
});
^
上面的代码将添加一个对象如下:
{
"productId": 29,
"productName": "Chocolote negro",
"productQty": 1,
"productPrice": "0.0",
"productLWeight": "0.00"
}
我有这段JS:
$('.go-to-bag').click(function () {
var productId = $(this).parent().attr('id');
var productName = $(this).parent().attr('product-name');
var productQty = $(this).prev().val();
var productLWeight = $(this).parent().attr('product-weight');
var productPrice = $(this).parent().attr('product-price');
var newList = new Object();
if(sessionStorage.newShoppingList)
{
newShoppingList = JSON.parse(sessionStorage.getItem('newShoppingList'));
} else {
newShoppingList = []
}
newShoppingList.push(productId, productName, productQty, productPrice, productLWeight);
sessionStorage.setItem('newShoppingList', JSON.stringify(newShoppingList));
var retrievedObject = sessionStorage.getItem('newShoppingList');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
});
它应该向 sessionStorage 中的对象添加项目,如下所示:
它工作得很好,但知道它不起作用。 唯一的区别是我的同事在主文件的 php 中实现了语言功能。
有人有什么建议吗?
您正在调用函数 Array.prototype.push
传递 5 个参数,这些参数将单独插入到该数组中。
Array.prototype.push
你需要用大括号括起来
v
newShoppingList.push({
productId,
productName,
productQty,
productPrice,
productLWeight
});
^
上面的代码将添加一个对象如下:
{
"productId": 29,
"productName": "Chocolote negro",
"productQty": 1,
"productPrice": "0.0",
"productLWeight": "0.00"
}