Сообщение от sanambler
|
li.innerHTML += '' +
'<b>' + key + ':' + '</b>'
;
|
Вот тут ты перезаписываешь свойство innerHTML. Твой старый <span> таким образом исчезает из <li>, затем браузер парсит новый innerHTML и создает новый <span>, но это уже другой элемент.
Варианты решения:
1) Не трогать innerHTML вообще. Использовать только DOM-методы.
2) Вставлять часть innerHTML через insertAdjacentHTML
3) Изменять innerHTML, затем только вставлять <span> через insertBefore
4) Делегировать обработчик события родительскому элементу.