1 回答

TA貢獻1811條經驗 獲得超6個贊
使用為列表創建新列表項的代碼,并將其放在單獨的函數中。我們稱該函數為createTodoItem。當文檔加載時,從中獲取存儲的待辦事項localStorage并循環遍歷每個值。然后對每個值調用createTodoItem并傳遞該值以創建一個新項目。
const submitButton = document.querySelector('#stuff');
const ul = document.querySelector('ul')
const text = document.querySelector('#textbox');
const storedTodos = localStorage.getItem('todos')
const todoArr = storedTodos !== null ? JSON.parse(storedTodos) : [];
function createTodoItem(value) {
const addLi = document.createElement('li');
const deleteBtn = document.createElement('button');
deleteBtn.innerText = 'remove';
addLi.innerText = value;
addLi.appendChild(deleteBtn);
ul.appendChild(addLi);
}
todoArr.forEach(createTodoItem);
同時修改您的submit偵聽器以使用新功能?,F在您已經獲得了可以在腳本中的任何位置調用的可重用函數。
submitButton.addEventListener('submit', function(e){
e.preventDefault();
if(text.value !== '') {
createTodoItem(text.value);
todoArr.push(text.value)
localStorage.setItem('todos', JSON.stringify(todoArr))
text.value = '';
}
})
ul.addEventListener('click', function(e) {
if(e.target.tagName === 'BUTTON') {
e.target.parentElement.remove();
} else if(e.target.tagName === 'LI'){
e.target.classList.toggle('strike-thru')
}
})
添加回答
舉報