Добавить кнопку удаления к элементу списка массива

Я создаю список задач JavaScript с помощью функции, которая помещает входное значение в массив и добавляет значение и кнопку удаления к элементу списка. Я реализовал функцию удаления, и после проб и ошибок и изучения других подобных демонстраций на этом сайте выяснилось, что как исходное выражение «var lastid = 0», так и выражение приращения «lastid = + 1» позволяют щелкнуть конкретный кнопку, чтобы удалить определенный элемент списка. В противном случае, без этого выражения, нажатие кнопки удаления для определенного элемента списка приведет к удалению самого верхнего элемента в списке массива вместо элемента, на который я нацелен. Может ли кто-нибудь объяснить мне, что такое начальное выражение «var lastid = 0» и выражение приращения «lastid = + 1», которые позволяют функции удаления нацеливаться на конкретный идентификатор?

JS:

var array = [];
var lastid = 0;

  function add(){
    var task = document.getElementById("task").value;
    array.push(task);

    var text = document.createTextNode(task);
    var li = document.createElement("li");
    li.setAttribute('id','task'+lastid);
    var btn = document.createElement("button");
    btn.appendChild(document.createTextNode("x"));
    btn.setAttribute('onClick','remove("'+'task'+lastid+'")');
    li.appendChild(text);
    li.appendChild(btn);
    lastid=+1;
    document.getElementById("myUl").appendChild(li);
  };

  function remove(itemid){
    var task = document.getElementById(itemid);
    document.getElementById("myUl").removeChild(task);
  }

HTML:

<input id = "task">
<button onclick = "add()">add</button>
<ul id = "myUl"></ul>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Маленькая ошибка. «lastid = + 1» - это не приращение, а операция присваивания. Вы присваиваете последнему значение «+1». Допускается ставить знак перед числовыми значениями.

Если вы хотите увеличить, вы должны использовать оператор увеличения "lastid + = 1"

Другой вариант. Если вы хотите удалить текущий элемент без увеличения идентификатора элемента, вы можете получить текущий элемент из глобального объекта this.event. Например, вы можете изменить функцию удаления следующим образом:

function remove(){
  var task = this.event.currentTarget.parentNode;
  document.getElementById("myUl").removeChild(task);
}

Спасибо за ответ! Думаю, я хотел добавить last + = 1, а не наоборот, спасибо, что указали на это. Без этого оператора приращения нажатие кнопки удаления (например) элемента №4 списка приводит к удалению самых верхних элементов в списке. Итак, что такое оператор инкремента, который позволяет нацеливать конкретный элемент?

JS_is_awesome18 06.11.2018 13:54

Другие вопросы по теме