Показать сообщение отдельно
  #2 (permalink)  
Старый 23.07.2013, 00:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от sanambler
li.innerHTML += '' +
'<b>' + key + ':' + '</b>'
;
Вот тут ты перезаписываешь свойство innerHTML. Твой старый <span> таким образом исчезает из <li>, затем браузер парсит новый innerHTML и создает новый <span>, но это уже другой элемент.

Варианты решения:
1) Не трогать innerHTML вообще. Использовать только DOM-методы.
2) Вставлять часть innerHTML через insertAdjacentHTML
3) Изменять innerHTML, затем только вставлять <span> через insertBefore
4) Делегировать обработчик события родительскому элементу.
Ответить с цитированием