Как очистить страницу от продуктов деятельности js?

Васо Вчеразаши
На сайте с 20.05.2018
Offline
41
411

Доброго здоровьица. Возможно в сети полно примеров решения, но не могу коротко сформулировать вопрос.

Выполнение скрипта повешано на кнопку, при нажатии в хтмл страницы вставляются дополнительные элементы. Вопрос в том, как при последующем нажатии на кнопку сначала очистить страницу от ранее созданных элементов, а затем создать новые без перезагрузки страницы?


function Start(){
ris.append(ryad); //В блок ris вставляется несколько элементов ryad
}

Может есть такая функция, которая удаляет результаты от предыдущего цикла? Знаю метод remove(), но не получается его прикрутить для корректной работы.

Пробовал так:


function Start(){
ris.append(ryad); //В блок ris вставляется несколько элементов ryad
var del = document.getElementsByTagName("button")[0];
del.onclick = function () {ryad.remove();};
}

Но при последующих нажатиях на кнопку из хтмл удаляется по одному (за нажатие) элементу ryad и не создаются новые.

S
На сайте с 30.09.2016
Offline
459
#1
Васо Вчеразаши:
не могу коротко сформулировать вопрос.

Слово "коротко" здесь лишнее. Вместо него следует написать "правильно".

Васо Вчеразаши:
Может есть такая функция, которая удаляет результаты от предыдущего цикла?
Может быть, и есть. Например,
ris.html(ryad)
А может быть, и по-другому, в зависимости от задачи.

И не вижу там никакого цикла, ни предыдущего, ни последующего.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Васо Вчеразаши
На сайте с 20.05.2018
Offline
41
#2
Sitealert:

И не вижу там никакого цикла, ни предыдущего, ни последующего.

Видимо я неправильно выразился: все что в function Start(){...} создает блоки в хтмл странице. Нужно удалить эти блоки, если function Start(){...} будет выполняться еще раз.

ris.html(ryad)

Что делает этот код? Поиск говорит, что html() - метод из библиотеки джеквери, у меня библиотека не используется.

S
На сайте с 30.09.2016
Offline
459
#3
Васо Вчеразаши:
Что делает этот код?

Переписывает содержимое элемента ris.

---------- Добавлено 03.02.2020 в 16:44 ----------

Васо Вчеразаши:
html() - метод из библиотеки джеквери, у меня библиотека не используется.
ris.innerHTML
Васо Вчеразаши
На сайте с 20.05.2018
Offline
41
#4
Sitealert:

ris.innerHTML

Благодарю. Получилось так:


function Start(){
var ris = document.querySelector('#risunok'); ris.innerHTML = "";
далее весь код скрипта...
}
S
На сайте с 30.09.2016
Offline
459
#5
Васо Вчеразаши:
Получилось так

Получилось или нет – это Вам виднее, я же со своей строны могу лишь заметить, что элемент искать по id правильнее всё же с помощью document.getElementById('risunok')

SocFishing
На сайте с 26.09.2013
Offline
118
#6
Васо Вчеразаши:
Доброго здоровьица. Возможно в сети полно примеров решения, но не могу коротко сформулировать вопрос.
Выполнение скрипта повешано на кнопку, при нажатии в хтмл страницы вставляются дополнительные элементы. Вопрос в том, как при последующем нажатии на кнопку сначала очистить страницу от ранее созданных элементов, а затем создать новые без перезагрузки страницы?

function Start(){
ris.append(ryad); //В блок ris вставляется несколько элементов ryad
}

Может есть такая функция, которая удаляет результаты от предыдущего цикла? Знаю метод remove(), но не получается его прикрутить для корректной работы.
Пробовал так:

function Start(){
ris.append(ryad); //В блок ris вставляется несколько элементов ryad
var del = document.getElementsByTagName("button")[0];
del.onclick = function () {ryad.remove();};
}

Но при последующих нажатиях на кнопку из хтмл удаляется по одному (за нажатие) элементу ryad и не создаются новые.

ну например: https://jsfiddle.net/yn4tc7pv/


<a href="#" onclick="javascript:Start();">start</a><br/>
<a href="#" onclick="javascript:xclear();">clear</a>

<div id="govnokod"></div>


<script>
var ris = document.getElementById("govnokod");

function Start(){
var ryad = document.createElement('div');
ryad.innerHTML = "<h1>ноль, целковый, чекушка, порнушка, пердушка, засирушка, жучок, мудачок, хуй на воротничок, дурачок, ВСЕ.</h1>";
ris.append(ryad);
}


function xclear() {
ris.remove();
}

</script>
★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.
Васо Вчеразаши
На сайте с 20.05.2018
Offline
41
#7
SocFishing:
("govnokod")

Очень показательно! Тем более выше подсказали решение в виде одной короткой строчки.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий