Javascript 按按钮编辑和删除列表+;本地存储的变化

Javascript 按按钮编辑和删除列表+;本地存储的变化,javascript,html,local-storage,Javascript,Html,Local Storage,我有一个列表,我想通过单击一个按钮编辑它的内容,然后将其保存到localstorage,通过单击另一个按钮,我想删除它并更改本地存储, 我的列表如下所示: “删除”按钮工作得很好,它删除了场景中不在本地存储中的li项。 “编辑”按钮使整个li可编辑,包括按钮,但我想更改它 单击“编辑”按钮后的列表如下所示: 还有我如何在本地存储中存储我的物品以及如何获取它们: function store(item){ let items = JSON.parse(window.loc

我有一个列表,我想通过单击一个按钮编辑它的内容,然后将其保存到localstorage,通过单击另一个按钮,我想删除它并更改本地存储, 我的列表如下所示:

“删除”按钮工作得很好,它删除了场景中不在本地存储中的li项。 “编辑”按钮使整个li可编辑,包括按钮,但我想更改它

单击“编辑”按钮后的列表如下所示:

还有我如何在本地存储中存储我的物品以及如何获取它们:

    function store(item){
        let items = JSON.parse(window.localStorage.getItem('myItems'));
        items = items === null ? [] : items;
        console.log(items);
        window.localStorage.setItem('myItems',JSON.stringify([...items,item]));
    }
    function getValues(){
        let list = document.querySelector('ul');
        let storedValues = JSON.parse(window.localStorage.getItem('myItems'));
        if(!storedValues){
            list.innerHTML = '';
        }
        else {
            storedValues.forEach(val =>{
                if(val){
                    list.innerHTML += '<li>'+'<a>' + val.name + " "+val.date +'</a>'+'<button onclick="editButton()">'+"Edytuj"+'</button>'+'<button onclick="deleteButton()">'+"Usuń"+'</button>'+'</li>';
                }
            })
        }
    }
功能存储(项){
让items=JSON.parse(window.localStorage.getItem('myItems');
items=项目===空?[]:项目;
控制台日志(项目);
window.localStorage.setItem('myItems',JSON.stringify([…items,item]);
}
函数getValues(){
let list=document.querySelector('ul');
让storedValues=JSON.parse(window.localStorage.getItem('myItems');
如果(!StoredValue){
list.innerHTML='';
}
否则{
storedValues.forEach(val=>{
if(val){
list.innerHTML++='
  • '++'+val.name++'+val.date++'+'+''Edytuj++'+'+'+''“Usuń”++'
  • '; } }) } }
    好的,我做了一些更改,现在删除效果很好

        function deleteButton(){
            event.target.parentElement.remove();
            let a = event.target.parentElement.innerText;
            let word = a.split(' ');
            let item = new Array();
            let i = 0;
            let storedValues = JSON.parse(window.localStorage.getItem('myItems'));
            window.localStorage.removeItem('myItems');
            storedValues.forEach(val =>{
                if(val.name === word[0]){
                    console.log(val.name);
                }
                else {
                    item[i] = new storage1(val.name,val.date);
                    i++;
                }
            });
            window.localStorage.setItem('myItems',JSON.stringify(item));
            storedValues = [];
        }
    
    但是我仍然进入这个编辑列表,当我将
  • ..
  • 更改为
  • ..
  • 时,它不起作用,有没有办法只编辑文本?
    或者在输入后停止输入文本

    如果
    edit
    delete
    按钮位于
    li
    ,您应该使用另一个div,以便它可以包含
    li
    的所有子项,但按钮除外。并且您的删除/编辑功能没有实现localstorage代码。
        function deleteButton(){
            event.target.parentElement.remove();
            let a = event.target.parentElement.innerText;
            let word = a.split(' ');
            let item = new Array();
            let i = 0;
            let storedValues = JSON.parse(window.localStorage.getItem('myItems'));
            window.localStorage.removeItem('myItems');
            storedValues.forEach(val =>{
                if(val.name === word[0]){
                    console.log(val.name);
                }
                else {
                    item[i] = new storage1(val.name,val.date);
                    i++;
                }
            });
            window.localStorage.setItem('myItems',JSON.stringify(item));
            storedValues = [];
        }