sessionStorage将所有内容存储在同一阵列中

时间:2018-11-03 02:00:13

标签: javascript php jquery local-storage session-storage

我有一块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的对象中,如下所示: enter image description here 相反,它给出了: enter image description here

它工作正常,并且知道它不工作。 唯一的区别是我的同事在主文件中的php中实现了语言功能。

有人建议吗?

1 个答案:

答案 0 :(得分:1)

您正在调用函数Array.prototype.push并传递5个参数,这些参数将分别插入到该数组中。

Array.prototype.push

enter image description here

您需要用大括号将其包裹

                     v
newShoppingList.push({
     productId,
     productName,
     productQty,
     productPrice,
     productLWeight
});
^

上面的代码将添加一个对象,如下所示:

{
  "productId": 29,
  "productName": "Chocolote negro",
  "productQty": 1,
  "productPrice": "0.0",
  "productLWeight": "0.00"
}