Javascript 未定义显示在我的表格下方-会话存储

Javascript 未定义显示在我的表格下方-会话存储,javascript,Javascript,下面的代码可以工作,但问题是“未定义”显示在我的表格下面。我试图删除sessionStorage.basket==未定义的,但它删除了整个表。有人能帮我吗 // Load basket on page window.onload = loadBasket; // Displays basket in page. function loadBasket() { // Get basket from local storage or create one if it does not ex

下面的代码可以工作,但问题是“未定义”显示在我的表格下面。我试图删除
sessionStorage.basket==未定义的
,但它删除了整个表。有人能帮我吗

// Load basket on page
window.onload = loadBasket;

// Displays basket in page.
function loadBasket() {
    // Get basket from local storage or create one if it does not exist
    var basketArray;
    if(sessionStorage.basket === undefined || sessionStorage.basket === "") {
        // Store as an array
        basketArray = [];
    }
    else {
        // Parse the data as an object
        basketArray = JSON.parse(sessionStorage.basket);
    }
    // Build string with basket HTML
    var htmlStr = "<form action='php/checkout.php' method='post'>";
    // Get table body
    var tableBody;
    // Display table headers
    var tableHeader = "<tr><th>Product Image</th><th>Product Name</th><th>Price</th></tr>\n";
    // Store IDs as array
    var prodIDs = [];
    // For loop to display more products on the table
    for(var i=0; i<basketArray.length; ++i) {
        tableBody += "<tr><td class='image_column'>" + "<img class='basket_img' src='" + basketArray[i].image + "'>" + "</td><td>" + basketArray[i].name + "</td><td>£" + basketArray[i].price + "</td></tr>";
        // Push data to insert into the database
        prodIDs.push({
            image: basketArray[i].image, 
            name: basketArray[i].name, 
            price: basketArray[i].price, 
            count: 1
        });
    }
    // Add hidden field to form that contains stringified version of product ids.
    htmlStr += "<input type='hidden' name='prodIDs' value='" + JSON.stringify(prodIDs) + "'>"; 
    // Display the number of items in the basket
    htmlStr += "<p class='basket_items'>Number of items in basket: " + "<span style='color:red'>" + basketArray.length + "</span>" + "</p>"; 
    // Add checkout and empty basket buttons
    htmlStr += "<button class='empty_basket' onclick='emptyBasket()'>Empty Basket</button>";
    htmlStr += "<input class='checkout_button' type='submit' value='Checkout'></form>";
    // Display number of products in basket
    document.getElementById("basketDiv").innerHTML = htmlStr;
    // Display table
    document.getElementById("basket_list").innerHTML = tableHeader + tableBody;
}
//在第页加载篮
window.onload=装载篮;
//在页面中显示篮子。
函数loadBasket(){
//从本地存储中获取篮子,如果篮子不存在,则创建一个篮子
var basketArray;
if(sessionStorage.basket==未定义| | sessionStorage.basket====“”){
//存储为数组
basketArray=[];
}
否则{
//将数据解析为对象
basketArray=JSON.parse(sessionStorage.basket);
}
//用basket-HTML构建字符串
var htmlStr=“”;
//取得桌身
var表体;
//显示表格标题
var tableHeader=“产品图像产品名称价格\n”;
//将ID存储为数组
var prodIDs=[];
//用于循环以在表上显示更多产品

对于(var i=0;i使用
localStorage
而不是
sessionStorage
,直到没有具体的使用原因为止

原因
sessionStorage
在每个窗口都可用,您可能在其他窗口上存储了basket的值,并试图进入其他窗口

localStorage
sessionStorage
之间的区别:

本地存储

存储在
localStorage
中的数据会一直保存,直到被明确删除。所做的更改将被保存,并可用于所有当前和将来的站点访问

会话存储

对于
sessionStorage
,更改仅在每个窗口(或Chrome和Firefox等浏览器中的选项卡)可用。所做的更改将被保存并可用于当前页面,以及在同一窗口上对站点的未来访问。关闭窗口后,存储将被删除

你的问题

首先确保您在
localStorage
中正确设置了值(对象数组

localStorage.setItem("basket", JSON.stringify(basketvalues));
if(localStorage.getItem("basket") === undefined || localStorage.getItem("basket") === "") {
        // Store as an array
        basketArray = [];
    }
    else {
        // Parse the data as an object
        basketArray = JSON.parse(localStorage.getItem("basket"));
    }
现在
loadBasket()
函数中的条件如下:

localStorage.setItem("basket", JSON.stringify(basketvalues));
if(localStorage.getItem("basket") === undefined || localStorage.getItem("basket") === "") {
        // Store as an array
        basketArray = [];
    }
    else {
        // Parse the data as an object
        basketArray = JSON.parse(localStorage.getItem("basket"));
    }
有关本地存储的更多信息,请阅读以下链接:


应该是
sessionStorage.getItem('basket'))
而不是
sessionStorage.basket
我这样做了,但是仍然显示undefined。您是否为其设置了值?否。我如何设置值?请在编写代码之前阅读此内容。我已将其更改为本地存储,但我仍然看到undefined。您如何将其存储到本地存储?同时共享该代码我已将sessionostrage更改为localStor年龄,对吗?@User786首先您需要将值正确设置为localStorage。如何将值设置为localStorage?localStorage.basket