如何从存储在localstorage

时间:2017-10-03 12:43:38

标签: javascript json local-storage

我正在使用asp.net网页上的购物车。我以对象的形式将产品信息存储在数组中,并在用户点击“添加到购物车”按钮时保存在localStorage中,并希望在购物车页面上访问该信息。 onclick event on add to cart按钮调用一个函数并将三个值发送到javascript作为这样的参数。

onclick="Add('@Row.P_ID','@Row.P_Name','@Row.P_Price')"

这是我的产品的Html代码。

<div class="row">
                        @foreach (var Row in db.Query(slctquery))
                        {
                           var pid = Row.P_ID;
                             <div class="col-xs-18 col-sm-6 col-md-3">
                                <div class="thumbnail" style="margin-bottom:10px;">
                                  <img src="@Url.Content(Row.P_Image)" alt="Product Image" style="height:200px;">
                                    <div class="caption">
                                        <h3>@Row.P_Name</h3>
                                        <p style="font-size:large" id="UPrice">@Row.P_Price</p>
                                        <p><a href="@Url.Action("ProductDetail","Home",new{pid=pid})" class="btn btn-info" role="button">View Detail</a>
<a onclick="Add('@Row.P_ID','@Row.P_Name','@Row.P_Price')" id="'@Row.P_ID'" class="btn btn-info" role="button">Add to Cart</a></p>
                                    </div>
                                </div>
                            </div>
                        }      
                    </div><!-- End row -->

我的javascript代码是:

<script>
var Cart=[];
function Add(id,name,price)
{
    var item={
        Pid:id,
        PNme:name,
        Price:price,
        quantity:'1'
    };
    var Cartitem = JSON.stringify(item);
    Cart.push(Cartitem); 
   window.localStorage.setItem("Cart",JSON.stringify(Cart));
}

它运行良好,数据存储在localstorage ..但我想在行中的购物车html表上访问这些对象属性(键和值),如Pids和PNme。 购物车页面javascript是:

 var cartitem = JSON.parse(localStorage.getItem("Cart"));
    alert(cartitem);

查看我想要添加这些值的位置.. Shopping Cart table 我怎样才能做到这一点... ..(抱歉英语不好)

3 个答案:

答案 0 :(得分:0)

您需要解析JSON.parse(localStorage.getItem("Cart"))

结果的数组项
var cartitem = JSON.parse(localStorage.getItem("Cart")).map(JSON.parse);

答案 1 :(得分:0)

你可以做这样的事情

Visible

答案 2 :(得分:0)

试试这个,我希望它能满足您的要求

var cartitem = JSON.parse(localStorage.getItem("Cart"));
var i=0, len = cartitem.length;
var dbArray = [], tmpArr = [];
for(;i<len;i++){
   tmpArr.push(cartitem[i].Pid);
   tmpArr.push(cartitem[i].PNme);
   tmpArr.push(cartitem[i].Price);
   tmpArr.push(cartitem[i].quantity);
   dbArray.push(tmpArr);
   tmpArr = [];
}

console.log("Final Db ready Array of records");
console.log(dbArray);

output will be : 
[
   ["abc1", "New Suite", "40400", "1"],
   ["abc2", "New Suite2", "2547", "1"],
   ["abc3", "New Suite3", "100", "8"],
   ["abc4", "New Suite4", "8500", "6"],
   ["abc5", "New Suite5", "10000", "2"],
   ["abc6", "New Suite6", "32000", "1"],
]