Использую document.write, чтобы дописать html в страницу по нажатию на кнопку, но все существующие элементы куда-то исчезают. Почему, и что делать?
function useDocumentWrite(aText) {
document.write("<p>" + aText + "</p>");
}
useDocumentWrite("when page is loading");
<button onclick="useDocumentWrite('after page loaded')">Use document.write</button>
Не вызывайте document.write после загрузки страницы.
https://developer.mozilla.org/en-US/docs/Web/API/Document/write
Note: as document.write writes to the document stream, calling
document.write on a closed (loaded) document automatically calls
document.open, which will clear the document.
Заметьте: так как document.write пишет в поток (stream)
документа, вызов document.write закрытого (загруженного)
документа автоматически вызывает document.open, что очищает
документ.
Можно использовать, например, document.createElement или писать в DOM элемент, существующий в документе с самого начала.
function useCreateElement(aText) {
var newP = document.createElement("p");
newP.innerText = aText;
document.body.appendChild(newP);
}
useCreateElement("when page is loading");
<button onclick="useCreateElement('after page loaded')">Use document.createElement</button>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости