Javascript TypeError:list.push在推送到本地存储时不是函数
我在尝试获取用户输入(todo)并将其作为值推送到本地存储时收到一个错误。该键来自TaskList.value,它是一个HTML选择表单 假设列表1被选中。用户输入“获取食品杂货”和“清洁汽车”。这应该作为一个值传递到localstorage,但是它为我提供了TypeError:list.push在推送到localstorage时不是一个函数 据我所知,这是一个解析或字符串化的问题。然而,我很困惑,尽管我读到的问题,它到底是哪一部分Javascript TypeError:list.push在推送到本地存储时不是函数,javascript,Javascript,我在尝试获取用户输入(todo)并将其作为值推送到本地存储时收到一个错误。该键来自TaskList.value,它是一个HTML选择表单 假设列表1被选中。用户输入“获取食品杂货”和“清洁汽车”。这应该作为一个值传递到localstorage,但是它为我提供了TypeError:list.push在推送到localstorage时不是一个函数 据我所知,这是一个解析或字符串化的问题。然而,我很困惑,尽管我读到的问题,它到底是哪一部分 const taskLists = document.getE
const taskLists = document.getElementById('task-lists');
function saveLocalTodo(todo) {
let list;
if (localStorage.getItem(taskLists.value) === null) {
list = [];
} else {
list = JSON.parse(localStorage.getItem(taskLists.value));
}
list.push(todo);
localStorage.setItem(taskLists.value, JSON.stringify(list));
}
您的函数:
saveLocalList(list)
将列表名保存到localStorage,而不进行字符串化。我认为这是问题的根源。请尝试以下代码:
// Saves list to local storage
function saveLocalList(list) {
localStorage.setItem(list, JSON.stringify([]));
}
请同时提供HTML代码:)@HarshanaSerasinghe抱歉,将其添加到主帖子中!我刚刚检查了你的代码,它运行得很好。你也可以发布这个函数吗?用HTML添加到主帖子中
<section class="main-content grid2">
<form class="add-task-form">
<button class="todo-button form-button" type="submit">
<i class="las la-plus-square"></i>
</button>
<input type="text" class="todo-input" placeholder="Add task" />
</form>
<div class="todo-container">
<ul class="todo-list"></ul>
</div>
</section>
const listInput = document.querySelector('.list-input');
// Creates option in UI
function createNewList(event) {
// Prevent form from submitting
event.preventDefault();
// Creates option element
const newList = document.createElement('option');
newList.innerText = listInput.value;
taskLists.appendChild(newList);
// Saves to local storage using form input
saveLocalList(listInput.value);
// Clear Todo Input Value
listInput.value = '';
}
// Saves list to local storage
function saveLocalList(list) {
localStorage.setItem(list, []);
}
// Saves list to local storage
function saveLocalList(list) {
localStorage.setItem(list, JSON.stringify([]));
}