Как удалить текст из большого количества элементов?

У меня есть код, который содержит большое количество тэгов(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 = 'Остальной текст';
   }
}
→ Ссылка