亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

瀏覽器刷新后如何讓localstorage數據留在頁面上

瀏覽器刷新后如何讓localstorage數據留在頁面上

慕無忌1623718 2023-03-10 15:11:37
我目前正在創建一個待辦事項應用程序,它允許用戶將信息輸入表單并在提交后,信息顯示為項目符號列表項。我已經做到了每次提交都保存到localStorage,但是如何在瀏覽器刷新后也維護頁面上的列表項?這是我的 JSconst submitButton = document.querySelector('#stuff');const ul = document.querySelector('ul')const text = document.querySelector('#textbox');const todoArr = []// const todoArr = localStorage.getItem('todos') ? JSON.parse(localStorage.getItem('todos')):[]submitButton.addEventListener('submit', function(e){    e.preventDefault();    if(text.value !== '') {        const addLi = document.createElement('li');        const deleteBtn = document.createElement('button');        deleteBtn.innerText = 'remove';        addLi.innerText = text.value;        addLi.appendChild(deleteBtn);        ul.appendChild(addLi);        // 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')    }})
查看完整描述

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')

    }

})


查看完整回答
反對 回復 2023-03-10
  • 1 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號