Решение уважаемого
historydev полностью работоспособно, к нему претензий нет никаких, но можно предложить и альтернативу при помощи
cloneNode(true) (глубокое клонирование объекта DOM).
таким образом переменная
html у нас остаётся объектом DOM, и её можно далее использовать по коду.
- var html = e.target.parentNode.querySelector('.firmware-window');
+ var html = e.target.parentNode.querySelector('.firmware-window').cloneNode(true);
$('.modal-wrapper').attr('class', 'modal-wrapper').html(html);
html.classList.remove('hiden');
cloneNode намного эффективнее, чем преобразование элемента в текст, а потом из текста в элемент, если исользовать подход с
innerHTML, и если бы это был какой-то цикл с очень большим количеством элементов, то разница почти в 2 раза была бы видна невооружённым взглядом.