JavaScript-创建用于编辑列表项的函数

JavaScript-创建用于编辑列表项的函数,javascript,html,Javascript,Html,我已经用HTML5创建了一个简单的应用程序。我添加了一个添加和删除项目的按钮。 但是,我不知道如何编辑项目。你知道如何创建一个函数来编辑列表中的项目吗 函数get_todos(){ var todos=新数组; var todos_str=localStorage.getItem('todo'); 如果(todos_str!==null){ todos=JSON.parse(todos_str); } 返回待办事项; } 函数add(){ var task=document.getElemen

我已经用HTML5创建了一个简单的应用程序。我添加了一个添加和删除项目的按钮。
但是,我不知道如何编辑项目。你知道如何创建一个函数来编辑列表中的项目吗

函数get_todos(){ var todos=新数组; var todos_str=localStorage.getItem('todo'); 如果(todos_str!==null){ todos=JSON.parse(todos_str); } 返回待办事项; } 函数add(){ var task=document.getElementById('task')。值; var todos=get_todos(); 推送(任务); setItem('todo',JSON.stringify(todos)); show(); 返回false; } 函数删除(){ var id=this.getAttribute('id'); var todos=get_todos(); todos.拼接(id,1); setItem('todo',JSON.stringify(todos)); show(); 返回false; } 函数show(){ var todos=get_todos(); var html='
    '; 对于(变量i=0;i'; }; html+='
'; document.getElementById('todos')。innerHTML=html; var button_delete=document.getElementsByClassName('remove'); 对于(变量i=0;i

添加

因此,现在您的点击处理程序只是调用remove——即使用户单击了“编辑”——因此您需要识别他们点击了哪个按钮,并调用相应的函数

    var html = '<ul class="list">';
    for(var i=0; i<todos.length; i++) {
        var list_element = "<li id=item'"+i+"'>";
        html += list_element + todos[i] + '<button class="remove" id="' + i  + '">Delete</button>  <button class="edit" id="edit' + i  + '">Edit</button></li>';
    };
    html += '</ul>';
现在发生这种情况的原因是,当您写出按钮的ID时,编辑按钮具有相同的类(“删除”),因此它们与删除按钮一起被触发

因此,要做的第一件事是为编辑按钮提供它们自己的类。我也会给每个列表元素它自己的ID,所以你可以很容易地从你的编辑功能中找到它们

    var html = '<ul class="list">';
    for(var i=0; i<todos.length; i++) {
        var list_element = "<li id=item'"+i+"'>";
        html += list_element + todos[i] + '<button class="remove" id="' + i  + '">Delete</button>  <button class="edit" id="edit' + i  + '">Edit</button></li>';
    };
    html += '</ul>';
var html='

    对于(var i=0;i因此,现在您的点击处理程序只是调用remove——即使用户单击了“编辑”——因此您需要识别他们点击了哪个按钮,并调用相应的函数

        var html = '<ul class="list">';
        for(var i=0; i<todos.length; i++) {
            var list_element = "<li id=item'"+i+"'>";
            html += list_element + todos[i] + '<button class="remove" id="' + i  + '">Delete</button>  <button class="edit" id="edit' + i  + '">Edit</button></li>';
        };
        html += '</ul>';
    
    现在发生这种情况的原因是,当您写出按钮的ID时,编辑按钮具有相同的类(“删除”),因此它们与删除按钮一起被触发

    所以首先要做的是给编辑按钮它们自己的类。我也会给每个列表元素它自己的ID,这样你就可以很容易地从你的编辑功能中找到它们

        var html = '<ul class="list">';
        for(var i=0; i<todos.length; i++) {
            var list_element = "<li id=item'"+i+"'>";
            html += list_element + todos[i] + '<button class="remove" id="' + i  + '">Delete</button>  <button class="edit" id="edit' + i  + '">Edit</button></li>';
        };
        html += '</ul>';
    
    var html='

      对于(var i=0;i创建一个名为
      edit
      的函数-其余的函数应该自己编写,实际上
      我不知道如何编辑项。
      @Ovidiu Dolha-splice()方法从数组中添加/删除项,并返回删除的项.我用什么方法编辑?@Jaromanda X-我创建了一个不是函数的编辑函数,因此没有决定在上面添加它,以免混淆代码。创建一个名为
      Edit
      的函数-其余的应该自己编写,实际上
      我不知道如何编辑项目。
      @Ovidiu Dolha-拼接()方法从数组中添加/删除项,并返回删除的项。我应该使用什么方法进行编辑?@Jaromanda X-我创建了一个不是函数的编辑函数,因此没有决定在上面添加它,以免混淆代码。