You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript配合localstorage实现数据存储、页面展示及删除功能?

实现方案

1. 调整HTML结构

新增一个专属容器用来展示存储的内容,避免插入元素时打乱原有布局,修改后完整HTML代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" name="" id="inp-value">
    <button id="btn">Klicka här!</button>
    <!-- 新增存储条目展示容器 -->
    <div id="storage-list"></div>

    <script src="script.js"></script>
</body>
</html>

2. 重写JavaScript逻辑

原有逻辑只能存储单条内容且没有渲染能力,我们调整为数组存储+渲染+删除的完整逻辑,完整代码如下:

const btn = document.getElementById("btn");
const inpValue = document.getElementById("inp-value");
const listContainer = document.getElementById("storage-list");

// 渲染存储列表的公共函数
function renderStorageList() {
    // 清空现有列表,避免重复渲染
    listContainer.innerHTML = '';
    // 从localStorage取已存的内容,没有就默认空数组
    const storedList = JSON.parse(localStorage.getItem('userInputs') || '[]');
    
    // 遍历生成每个条目
    storedList.forEach((item, index) => {
        // 创建条目容器
        const itemDiv = document.createElement('div');
        itemDiv.style.margin = '8px 0';
        itemDiv.style.display = 'flex';
        itemDiv.style.gap = '10px';
        itemDiv.style.alignItems = 'center';
        
        // 内容文本
        const textSpan = document.createElement('span');
        textSpan.textContent = item;
        
        // 删除按钮
        const delBtn = document.createElement('button');
        delBtn.textContent = '删除';
        // 绑定删除事件
        delBtn.onclick = function() {
            // 移除对应索引的条目
            storedList.splice(index, 1);
            // 存回localStorage
            localStorage.setItem('userInputs', JSON.stringify(storedList));
            // 重新渲染列表
            renderStorageList();
        }
        
        // 组装元素
        itemDiv.appendChild(textSpan);
        itemDiv.appendChild(delBtn);
        listContainer.appendChild(itemDiv);
    })
}

// 页面加载时先渲染一次已有的存储内容
renderStorageList();

// 按钮点击逻辑
btn.onclick = function(){
    const value = inpValue.value.trim();
    // 空内容不提交
    if (!value) return;
    
    // 取已有列表,加入新内容
    const storedList = JSON.parse(localStorage.getItem('userInputs') || '[]');
    storedList.push(value);
    // 存回localStorage
    localStorage.setItem('userInputs', JSON.stringify(storedList));
    // 清空输入框
    inpValue.value = '';
    // 更新列表展示
    renderStorageList();
};

核心调整说明

  • 将localStorage存储结构从单字符串改为数组,支持存储多条内容不会互相覆盖
  • 抽取独立的渲染函数,页面加载、新增内容、删除内容时都可以复用,保证视图和存储数据一致
  • 删除按钮通过索引定位对应条目,操作完成后自动更新存储和视图

内容的提问来源于stack exchange,提问作者Marcus Rosberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:06:02