Как удалить узел из DOM

175
05 апреля 2019, 01:30

Может тут кто-то подскажет решение проблемы? Пишу просто туду лист через классы, и не могу запустить метод deleteTask, т.к не знаю как его закрепить к кнопке btn

class ToDo {
    constructor({inputTask, addTask, finishedTask}) {
        this.inputTask = inputTask;
        this.addTask = addTask;
        this.finishedTask = finishedTask;
        addTask.onclick = () => this.add();
        var less = this.finishedTask.querySelectorAll('li').lastChild
        less.onclick = () => this.deleteTask();
    }
    createTask(task) {
        let listItem = document.createElement('li');
        let spanTask = document.createElement('span')
        spanTask.className = "text"
        spanTask.innerHTML = task;
        let btn = document.createElement('button')
        btn.classList = 'btnDelete'
        btn.innerHTML = 'delete'
        listItem.appendChild(spanTask);
        listItem.appendChild(btn);
        return listItem;
    }
    add() {
        if(this.inputTask.value) {
            let listItem = this.createTask(this.inputTask.value)
            this.finishedTask.appendChild(listItem)
            this.inputTask.value = '';
        }
    }
    deleteTask() {
        let listItem = this.parentNode;
        let ul = listItem.parentNode;
        ul.removeChild(listItem)
    }
}
let todo = new ToDo ({
    inputTask: document.getElementById('new-task'),
    addTask: document.getElementById('add'),
    finishedTask: document.getElementById('unfinished-tasks')
})
Answer 1

В данном коде уже добавляется один обработчик click, для элемента

 var less = this.finishedTask.querySelectorAll('li').lastChild

Тот же подход надо было использовать применительно к создаваемой кнопке:

let btn = document.createElement('button');
btn.classList = 'btnDelete';
btn.innerHTML = 'delete';
btn.onclick = this.deleteTask;
READ ALSO
Как в Webpack 4 настроить Css Modules?

Как в Webpack 4 настроить Css Modules?

как в Webpack настроить CSS Modules чтобы генерировать вот такие классы (Hesh)

165
Возникли проблемы с переводом с jq на js [закрыт]

Возникли проблемы с переводом с jq на js [закрыт]

Переведите 4 строчку на нативный js пожалуйста

126
Как отлавливать ошибки fetch?

Как отлавливать ошибки fetch?

В моей программе, я вывожу forks репозитория, который вбиваю вручную

170
Обратный счётчик на vue js

Обратный счётчик на vue js

Не могу сообразить до конца как отобразить на vue обратный таймер

174