Из-за чего ошибка в консоли?

320
31 июля 2017, 15:05

Вот демка https://jsbin.com/kujeqefegi/edit?html,js,console,output Есть простой html и скрипт, часть которого отвечает за добавление новых блоков, а часть за удаление:

// Добавлене блоков
var div = '';
var next_id = 3;
add_block.onclick = function() {
    next_id++;
    var div = document.createElement('div');
    div.id = 's'+next_id;
    div.className = 'text block';
    var template = 'new - удали меня';
    div.innerHTML = template;
    main.appendChild(div);
};
//Удаление блоков
main.onclick = function() {
  var DelButtons = document.querySelectorAll('.text.block');
  var DelButtonsArray = Array.from(DelButtons);
  DelButtonsArray.forEach(function(button){
      button.addEventListener('click', function(e) {
          document.getElementById(e.target.id).remove();
      })
  });
}

Да я знаю что метод .remove() не кроссбраузерный, вопрос сейчас в другом, после удаления в консоли появляется ошибка:

Uncaught TypeError: Cannot read property 'remove' of null at HTMLDivElement.

Он пытается получить доступ к id который только что удалён что ли был? Как это предотвратить?

READ ALSO
Переделка Js анимации

Переделка Js анимации

Подскажите как изменить код, что бы реализовать анимацию, так, что б через каждые 5 сек происходила анимация данный(mainpage__top__caption,mainpage__top--line-1...

562
Работа скрипта в подгружаемом файле с помощью ajax

Работа скрипта в подгружаемом файле с помощью ajax

Доброго времени сутокПроблема такая: при подгрузке с помощью ajax html файла и добавления его содержимого в разметку основного, скрипт который...

297
Изменение массива локаций в gMaps API

Изменение массива локаций в gMaps API

Добрый деньИспользую библиотеку кластеризации маркеров для более удобного вывода их на карту

297
Как в JavaScript передать значение объекта, а не ссылку на объект?

Как в JavaScript передать значение объекта, а не ссылку на объект?

Имеется функция (класс) в которую передаю произвольный объект для хранения настроек

421