javascript - 如何组合和存储这些值
问题描述
我有一个提醒应用程序,它在本地存储东西,我已经让它分别存储每个问题。我需要做什么才能将所有 3 个部分作为 1 个项目存储在本地存储中以便更容易检索?另外,我需要添加什么才能在不覆盖已存储内容的情况下存储多个内容?
<div class="container">
<!-- The above form looks like this -->
<div class="row">
<div class="six columns" style="margin-top: 20%">
<form id="todoForm">
<label for="ReminderInput">Reminder</label>
<input class="u-full-width" type="text" id="ReminderInput">
<label for="DateInput">Date</label>
<input class="u-full-width" type="datetime-local" id="DateInput">
<label for="InfoInput">Additional Information</label>
<textarea class="u-full-width" type="text" placeholder="Remember to..." id="InfoInput"></textarea>
<button type="button" id="btn" class="button-primary">Add Reminder</button>
</form>
</div>
</div>
</div>
let reminders = [];
const addReminders = (ev) => {
ev.preventDefault();
let reminder = {
ReminderInput: document.getElementById('ReminderInput').value,
DateInput: document.getElementById('DateInput').value,
InfoInput: document.getElementById('InfoInput').value
}
localStorage.setItem('ReminderInput', JSON.stringify(reminder.ReminderInput));
localStorage.setItem('DateInput', JSON.stringify(reminder.DateInput));
localStorage.setItem('InfoInput', JSON.stringify(reminder.InfoInput));
}
document.addEventListener('DOMContentLoaded', () => {
document.getElementById('btn').addEventListener('click', addReminders);
});
解决方案
要将对象作为单个项目存储在本地存储中,您可以使用JSON.stringify
将对象编码为字符串,稍后检索对象时,您需要记住使用JSON.parse
将字符串转换回对象。
为了存储多个而不覆盖任何内容,您需要某种类型的累加器,它也可以在本地存储中,以便您可以为每个值生成一个新键,例如“reminder1”、“reminder2”等。只是不要每次存储新密钥时忘记增加累加器。然后,您可以稍后迭代累加器的 1 -> 当前值以检索所有存储的对象。
推荐阅读
- sql - 根据父值对数据进行分组
- sql - 从 SQL 中的嵌套 json 获取数据
- node.js - node-postgres 中的查询结果是否有限制
- javascript - 复选框(Ajax 和 JavaScript)
- node.js - 在 http get 方法中获取奇怪的 json 格式 - nodejs/express
- python - 如何获得系列中最小值的索引?
- azure - 使用 Jenkins 的 Azure 蓝图
- css - 如何将按钮放在图像的中心
- laravel - 如何通过在laravel中填写相同的表格来为多个用户分配任务?
- django - 在 django-admin 中使 HTML 自定义字段可排序