Добавить кнопку «Удалить» к элементу списка массивов - PullRequest
0 голосов
/ 06 ноября 2018

Я создаю список дел 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>

1 Ответ

0 голосов
/ 06 ноября 2018

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

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

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

function remove(){
  var task = this.event.currentTarget.parentNode;
  document.getElementById("myUl").removeChild(task);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...