А подумать? Что вот тут у вас по вашему происходит: this.innerHTML = this.value;? Что такое тут this, и как один this от другого должен отличить интерпретатор?
Antonio09, на self?
Никакой магии же. Вы сохраняете "внешний" this в переменную self(или любую другую) и использете его таким образом одновременно с "внутренним" this.
При срабатывании события this для переданной функции-обработчика устанавливается равным тому элементу, на который этот самый обработчик и повесили.
В принципе можно конструкцию:
let self = this;
edit.addEventListener('keypress', function(event) {
if (event.key =='Enter') {
self.innerHTML = this.value;
}
});
У тебя там тааакая жесть...зачем хоть добавлять обработчики внутри добавления обработчиков внутри добавления других обработчиков, и при этом еще обращаться к this??? Попробуй объявить все обработчики в разных функциях и назначать их ссылочно