Как удалить текст из большого количества элементов?
У меня есть код, который содержит большое количество тэгов(span-ы там разные и т.д). Как мне удалить текст из всех них разом, не вводя innerHTML = "", для каждого, а то масштабно выйдет, да и в костыли лезть не хочется. Пробовал объединить их в div и стереть innerHTML-ем, но не помогло
Ответы (1 шт):
Предположу, что это просто "невозможно".
Вы хотите удалить их все разом, но для начала их все разом нужно получить, а любой вариант создаст лишь nodeList, к которому вы потом сможете обратится вроде nodeList[0] и тд.
Получив этот псевдо массив нужно как минимум перебрать, что бы как вы сказали "много". не писать ручками.
Идея такова, что мы получаем ноду и на каждой итерации удаляем текст изменив textContent.
Вы конечно можете как-то отсортировать это тем же sort, но смысл? Вам же не важно в каком порядке удалять. Задача просто удалить!
Код читается сверху вниз "а не разом", как вы сказали. Но js выполняет это на столько быстро, что для вас это меньше секунды.
В связи с этим я не вижу проблемы удалить/изменить текст, предварительно получив его и на каждой итерации пройтись по node.
class="delText" - Это в классы.
//JS
const delText = document.querySelectorAll('.delText');
for(const element of delText) {
element.textContent = 'ваш text';
}
delText[33].textContent = 'ваш text';
Вы можете проверять условие и не просто удалять текст, но на определенном этапе и изменять его.
for(let i = 0; i<delText.lenght; i++) {
if(i<3 && i>1) {
element.textContent = 'Другой текст.';
}
else if(i>4) {
element.textContent = 'Остальной текст';
}
}