javascript - 刷新时,数组中新添加的元素将从数组列表本身中删除

标签 javascript html arrays

每当我在数组中添加新元素时,它都会成功添加,但是当我刷新浏览器时,添加的元素将从列表本身中删除。这是我的代码片段。

<html> 
    <label>Enter an New item to add in Stock</label> <br> </br> 
    <input type="text" name=" itemName" id="addItemInStock><br></br>
    <p id="errorMsg"></p> 
    <button onclick="addToStock()" return="false">Add</button>
    <p id="showList"></p> 
    <select id="showInDropDown">
        <option value="" disabled selected style="display: block;">Stock Items</option>
    </select>

<script>
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.getElementById("showList").innerHTML = fruits;
    var newItem = document.getElementById("addItemInStock");

    function addToStock(){
        if ((newItem.value) === ""){
            document.getElementById("errorMsg").innerHTML = "Blank item cannot be added!!";
            document.getElementById("errorMsg").style.display = "block";
        }
        else{
            document.getElementById("errorMsg").style.display = "none";
            fruits.push(newItem.value);
            document.getElementById("showList").innerHTML = fruits;
            clearAndShow();
        }
        var sel = document.getElementById("showInDropDown");
        document.getElementById("showInDropDown").innerHTML = "";
        for (var i = 0; i < fruits.length; i++)
        {
            var opt = document.createElement('option');
            sel.appendChild(opt);
        }
    }

    function clearAndShow(){
        newItem.value = "";
    }
</script>

</html>

最佳答案

因为刷新时,页面会重新绘制。如果您需要保存列表,那么您需要使用一些网络存储,即 localStorage、网络存储等。

以下是localStorage的一个简单用例

更新自

var fruits = ["Banana", "Orange", "Apple", "Mango"];

var fruitsfromLS = localStorage.getItem("fruits");
var fruits = fruitsfromLS ? JSON.parse(fruitsfromLS) : ["Banana", "Orange", "Apple", "Mango"];

并更新

fruits.push(newItem.value);

fruits.push(newItem.value);
localStorage.setItem("fruits", JSON.stringify(fruits));

仅供引用,localStorage

关于javascript - 刷新时,数组中新添加的元素将从数组列表本身中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40647778/

相关文章:

html - 如何更改html中h2标题部分的颜色

html - 使用 grid-column 和 grid-row 的网格布局

sql - 在 MySql 列中存储字符串列表

java - 如何正确地将 args 数组传递给 java 中的方法?

javascript - 数组数组中对象的总和值

javascript - 哪些日期格式是符合 IETF 标准的 RFC 2822 时间戳?

html - CSS Hover 不能正常工作

Javascript - eval() `{}` 表达式

javascript - 如何使用每个数组记录的多个对象对 JavaScript 或 jQuery 中的数组进行排序

javascript - 在 angularjs 中实现 location.path 的最佳方法